MiniPdf 是晚輩開(kāi)發(fā) MiniExcel、Word 后最新開(kāi)發(fā)工具,不需要安裝任何軟體,輕量化,開(kāi)源可免費(fèi)商用
主要解決目前好用的轉(zhuǎn)換庫(kù)要收費(fèi),需要安裝 LibreOffice、office 或 docker 情況
特點(diǎn)
1.無(wú)需 COM、Office、Adobe Acrobat
2.其他語(yǔ)言可以用預(yù)編譯獨(dú)立二進(jìn)制文件,支援 Windows / Linux / macOS,無(wú)需安裝 .NET 執(zhí)行階段
3.完全開(kāi)源免費(fèi),基于 Apache 2.0 授權(quán),可自由商用,無(wú)任何限制
MiniPdf 目前只能處理基本的轉(zhuǎn)換需求。對(duì)于復(fù)雜或高度自訂的 Office 文件,轉(zhuǎn)換結(jié)果可能不夠理想。如果遇到相容性問(wèn)題,歡迎提交 Issue 或發(fā)起 Pull Request,一起讓開(kāi)源社群變得更好!
假如喜歡 MiniPdf 的理念,期待你的 star 跟推薦??

GitHub : https://github.com/mini-software/MiniPdf
Gitee : https://gitee.com/dotnetchina/MiniPdf
介紹
一個(gè)極簡(jiǎn)、輕量化的 .NET 庫(kù),用于將 Office 文件轉(zhuǎn)換為 PDF。
在線演示 — 在瀏覽器中快速體驗(yàn),無(wú)需安裝。
瀏覽器可用字體有限,渲染效果可能不夠理想。建議在本地電腦上測(cè)試以獲得最佳效果。
功能特性
- Excel 轉(zhuǎn) PDF — 將
.xlsx 文件轉(zhuǎn)換為 PDF - Word 轉(zhuǎn) PDF — 將
.docx 文件轉(zhuǎn)換為 PDF - 極少依賴 — 輕量化設(shè)計(jì),幾乎僅使用 .NET 內(nèi)置 API
- Serverless 就緒 — 無(wú)需 COM、無(wú)需安裝 Office、無(wú)需 Adobe Acrobat — 有 .NET 即可運(yùn)行
- Native AOT — 預(yù)編譯獨(dú)立二進(jìn)制文件,支持 Windows / Linux / macOS,無(wú)需安裝 .NET 運(yùn)行時(shí)
- 標(biāo)準(zhǔn) PDF 1.4 格式輸出
- 完全開(kāi)源免費(fèi) — 基于 Apache 2.0 協(xié)議,可自由商用,無(wú)任何限制,注明出處即可。歡迎提交 PR 一起貢獻(xiàn)!
- 圖表 — 目前支持尚不完善
快速開(kāi)始
通過(guò) NuGet 安裝
dotnet add package MiniPdf
使用方式
using MiniSoftware;
MiniPdf.ConvertToPdf("data.xlsx", "output.pdf");
MiniPdf.ConvertToPdf("report.docx", "output.pdf");
byte[] pdfBytes = MiniPdf.ConvertToPdf("data.xlsx");
using var stream = File.OpenRead("data.xlsx");
byte[] pdfBytes = MiniPdf.ConvertToPdf(stream);
自定義字體
如果運(yùn)行環(huán)境系統(tǒng)字體有限(例如容器或 Blazor WASM),請(qǐng)?jiān)谵D(zhuǎn)換前先注冊(cè)字體。
using MiniSoftware;
MiniPdf.RegisterFont("NotoSansSC", File.ReadAllBytes("Fonts/NotoSansSC-Regular.ttf"));
MiniPdf.RegisterFont("NotoColorEmoji", File.ReadAllBytes("Fonts/NotoColorEmoji.ttf"));
MiniPdf.ConvertToPdf("report.docx", "report.pdf");
說(shuō)明:
- 支持傳入 TrueType
.ttf 和 TrueType Collection .ttc 字體字節(jié)。 - 建議僅在啟動(dòng)階段注冊(cè)一次,避免重復(fù)注冊(cè)。
- 已注冊(cè)字體會(huì)優(yōu)先于系統(tǒng)字體參與匹配。
命令行工具
MiniPdf 還提供命令行工具 MiniPdf.Cli,無(wú)需編寫(xiě)代碼即可快速轉(zhuǎn)換文件。
安裝
dotnet tool install --global MiniPdf.Cli
使用方式
minipdf data.xlsx
minipdf report.docx
minipdf report.docx -o /path/to/output.pdf
minipdf report.docx --fonts ./Fonts
命令說(shuō)明
| 命令 | 說(shuō)明 |
|---|
minipdf <file> | 將 .xlsx / .docx 轉(zhuǎn)換為 PDF |
minipdf convert <file> -o <out> | 轉(zhuǎn)換并指定輸出路徑 |
minipdf --version | 顯示版本 |
minipdf --help | 顯示幫助 |
Native AOT 獨(dú)立二進(jìn)制文件
MiniPdf.Cli 支持 Native AOT(Ahead-of-Time,預(yù)編譯)— 在構(gòu)建階段將 C# 代碼直接編譯為原生機(jī)器碼,如同 C/C++ 編譯一樣,生成獨(dú)立的可執(zhí)行文件。運(yùn)行時(shí)無(wú)需 .NET 運(yùn)行時(shí)或 JIT 編譯器。
優(yōu)勢(shì):
- 零依賴 — 目標(biāo)機(jī)器無(wú)需安裝 .NET SDK 或運(yùn)行時(shí)
- 即時(shí)啟動(dòng) — 原生機(jī)器碼,無(wú) JIT 預(yù)熱
- 體積小巧 — 單文件二進(jìn)制,便于分發(fā)和部署
- CI/CD 友好 — 下載即可運(yùn)行,無(wú)需在流水線中安裝 .NET
下載: 從 GitHub Releases 頁(yè)面下載對(duì)應(yīng)平臺(tái)的二進(jìn)制文件。
| 平臺(tái) | 文件 |
|---|
| Windows x64 | minipdf-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | minipdf-osx-arm64.tar.gz |
使用方式(Linux / macOS 示例):
tar -xzf minipdf-linux-x64.tar.gz
./minipdf report.docx -o report.pdf
使用方式(Windows 示例):
.\minipdf.exe report.docx -o report.pdf