MiniPdf 是晚辈开发 MiniExcel、Word 后最新开发工具,不需要安装任何软体,轻量化,开源可免费商用
主要解决目前好用的转换库要收费,需要安装 LibreOffice、office 或 docker 情况
特点
1.无需 COM、Office、Adobe Acrobat
2.其他语言可以用预编译独立二进制文件,支援 Windows / Linux / macOS,无需安装 .NET 执行阶段
3.完全开源免费,基于 Apache 2.0 授权,可自由商用,无任何限制
MiniPdf 目前只能处理基本的转换需求。对于复杂或高度自订的 Office 文件,转换结果可能不够理想。如果遇到相容性问题,欢迎提交 Issue 或发起 Pull Request,一起让开源社群变得更好!
假如喜欢 MiniPdf 的理念,期待你的 star 跟推荐🐱🏍
介绍
一个极简、轻量化的 .NET 库,用于将 Office 文件转换为 PDF。
在线演示 --- 在浏览器中快速体验,无需安装。
浏览器可用字体有限,渲染效果可能不够理想。建议在本地电脑上测试以获得最佳效果。
QQ群 - 1群 : 813100564 / 2群 : 579033769 / 3群 : 625362917 / 4群 : 907750429
功能特性
- Excel 转 PDF --- 将
.xlsx文件转换为 PDF - Word 转 PDF --- 将
.docx文件转换为 PDF - 极少依赖 --- 轻量化设计,几乎仅使用 .NET 内置 API
- Serverless 就绪 --- 无需 COM、无需安装 Office、无需 Adobe Acrobat --- 有 .NET 即可运行
- Native AOT --- 预编译独立二进制文件,支持 Windows / Linux / macOS,无需安装 .NET 运行时
- 标准 PDF 1.4 格式输出
- 完全开源免费 --- 基于 Apache 2.0 协议,可自由商用,无任何限制,注明出处即可。欢迎提交 PR 一起贡献!
- 图表 --- 目前支持尚不完善
注意: MiniPdf 目前只能处理基本的转换需求。对于复杂或高度自定义的 Office 文档,转换效果可能不够理想。如果您遇到兼容性问题,欢迎提交 Issue 或发起 Pull Request,一起让项目变得更好!
快速开始
通过 NuGet 安装
bash
dotnet add package MiniPdf
使用方式
csharp
using MiniSoftware;
// Excel 转 PDF
MiniPdf.ConvertToPdf("data.xlsx", "output.pdf");
// Word 转 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);
自定义字体
如果运行环境系统字体有限(例如容器或 Blazor WASM),请在转换前先注册字体。
csharp
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");
说明:
- 支持传入 TrueType
.ttf和 TrueType Collection.ttc字体字节。 - 建议仅在启动阶段注册一次,避免重复注册。
- 已注册字体会优先于系统字体参与匹配。
命令行工具
MiniPdf 还提供命令行工具 MiniPdf.Cli,无需编写代码即可快速转换文件。
安装
bash
dotnet tool install --global MiniPdf.Cli
使用方式
bash
# 将 Excel 转为 PDF(输出: data.pdf)
minipdf data.xlsx
# 将 Word 转为 PDF
minipdf report.docx
# 指定输出路径
minipdf report.docx -o /path/to/output.pdf
# 注册自定义字体(适用于容器/无头环境)
minipdf report.docx --fonts ./Fonts
命令说明
| 命令 | 说明 |
|---|---|
minipdf <file> |
将 .xlsx / .docx 转换为 PDF |
minipdf convert <file> -o <out> |
转换并指定输出路径 |
minipdf --version |
显示版本 |
minipdf --help |
显示帮助 |
Native AOT 独立二进制文件
MiniPdf.Cli 支持 Native AOT(Ahead-of-Time,预编译)--- 在构建阶段将 C# 代码直接编译为原生机器码,如同 C/C++ 编译一样,生成独立的可执行文件。运行时无需 .NET 运行时或 JIT 编译器。
优势:
- 零依赖 --- 目标机器无需安装 .NET SDK 或运行时
- 即时启动 --- 原生机器码,无 JIT 预热
- 体积小巧 --- 单文件二进制,便于分发和部署
- CI/CD 友好 --- 下载即可运行,无需在流水线中安装 .NET
下载: 从 GitHub Releases 页面下载对应平台的二进制文件。
| 平台 | 文件 |
|---|---|
| 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 示例):
bash
# 下载并解压
tar -xzf minipdf-linux-x64.tar.gz
# 转换
./minipdf report.docx -o report.pdf
使用方式(Windows 示例):
powershell
# 解压 zip 后运行
.\minipdf.exe report.docx -o report.pdf