V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
littlemis
V2EX  ›  分享创造

世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf

  •  
  •   littlemis · 6 小时 18 分钟前 · 171 次点击

    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 跟推荐 🙌


    GitHub : https://github.com/mini-software/MiniPdf Gitee : https://gitee.com/dotnetchina/MiniPdf


    介绍

    一个极简、轻量化的 .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 安装

    dotnet add package MiniPdf
    

    使用方式

    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 ),请在转换前先注册字体。

    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,无需编写代码即可快速转换文件。

    安装

    dotnet tool install --global MiniPdf.Cli
    

    使用方式

    # 将 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 示例):

    # 下载并解压
    tar -xzf minipdf-linux-x64.tar.gz
    
    # 转换
    ./minipdf report.docx -o report.pdf
    

    使用方式( Windows 示例):

    # 解压 zip 后运行
    .\minipdf.exe report.docx -o report.pdf
    
    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 12:07 · PVG 20:07 · LAX 05:07 · JFK 08:07
    ♥ Do have faith in what you're doing.