# MiniPdf **Repository Path**: dotnetchina/MiniPdf ## Basic Information - **Project Name**: MiniPdf - **Description**: 【测试 Beta 阶段】极简、零依赖的 .NET 库,用于将 Office 文件转换为 PDF - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://github.com/mini-software/MiniPdf - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MiniPdf

NuGet NuGet 下载次数 GitHub stars Gitee 许可证

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Italiano | Français

--- 一个极简、零依赖的 .NET 库,用于将 Office 文件转换为 PDF。 👉 **[在线演示](https://mini-software.github.io/MiniPdf/)** — 在浏览器中快速体验,无需安装。 ---

QQ群 - 1群 : 813100564 / 2群 : 579033769 / 3群 : 625362917 / 4群 : 907750429

--- ## 功能特性 - **Excel 转 PDF** — 将 `.xlsx` 文件转换为分页 PDF,自动进行列布局 - **嵌入图片** — Excel 工作表中嵌入的 JPEG 和 PNG 图片会渲染到 PDF 输出中 - **零依赖** — 仅使用 .NET 内置 API(无需任何外部包) - **标准 PDF 1.4** 格式输出 - **Word 转 PDF** — 开发中 - **图表** — 目前支持尚不完善 ## 快速开始 ### 通过 NuGet 安装 ```bash dotnet add package MiniPdf ``` ## 使用方式 ```csharp using MiniSoftware; // 文件转文件 MiniPdf.ConvertToPdf("data.xlsx", "data.pdf"); // 文件转字节数组 byte[] pdfBytes = MiniPdf.ConvertToPdf("data.xlsx"); // 流转字节数组 using var stream = File.OpenRead("data.xlsx"); byte[] pdfBytes = MiniPdf.ConvertToPdf(stream); ``` ## 基准测试 MiniPdf 的输出与 LibreOffice 作为参考渲染器进行对比,共 **373 个测试用例**。 | 报告 | 用例数 | 🟢 优秀 (≥90%) | 🟡 可接受 (70%–90%) | 🔴 待改进 (<70%) | 平均分 | |---|---|---|---|---|---| | XLSX 转 PDF | 191 | 175 | 16 | 0 | 96.9% | | DOCX 转 PDF | 180 | 178 | 2 | 0 | 97.6% | | Issue XLSX 文件 | 2 | 1 | 1 | 0 | 83.8% | | **合计** | **373** | **354** | **19** | **0** | **97.2%** | 评分方式:文本相似度 40% + 视觉相似度 40% + 页数 20% ### 详细对比报告 - [XLSX 基准测试报告](tests/MiniPdf.Benchmark/reports/comparison_report.md) — XLSX 转换测试用例 - [DOCX 基准测试报告](tests/MiniPdf.Benchmark/reports_docx/comparison_report.md) — DOCX 转换测试用例 - [Issue XLSX 文件报告](tests/Issue_Files/reports_xlsx/comparison_report.md) — 实际 Issue 文件测试用例 ### 视觉对比 所有测试用例对比 MiniPdf 输出与 LibreOffice 参考。多页结果仅显示第 1 页。
MiniPdfLibreOffice(参考)
classic01 Basic table with headers 🟢 99.9%
classic02 Multiple worksheets 🟢 99.8%
classic03 Empty workbook 🟢 100.0%
classic04 Single cell 🟢 100.0%
classic05 Wide table 🟢 99.8%
classic06 Tall table 🟢 97.8%
classic07 Numbers only 🟢 100.0%
classic08 Mixed text and numbers 🟢 99.9%
classic09 Long text 🟢 98.4%
classic10 Special xml characters 🟢 99.9%
classic11 Sparse rows 🟢 100.0%
classic12 Sparse columns 🟢 99.9%
classic13 Date strings 🟢 99.9%
classic14 Decimal numbers 🟢 99.9%
classic15 Negative numbers 🟢 99.9%
classic16 Percentage strings 🟢 99.4%
classic17 Currency strings 🟢 99.9%
classic18 Large dataset 🟢 95.7%
classic19 Single column list 🟢 99.9%
classic20 All empty cells 🟢 100.0%
classic21 Header only 🟢 99.9%
classic22 Long sheet name 🟢 99.9%
classic23 Unicode text 🟢 91.3%
classic24 Red text 🟢 99.9%
classic25 Multiple colors 🟢 99.8%
classic26 Inline strings 🟢 99.9%
classic27 Single row 🟢 99.9%
classic28 Duplicate values 🟢 99.9%
classic29 Formula results 🟢 99.9%
classic30 Mixed empty and filled sheets 🟢 100.0%
classic31 Bold header row 🟢 99.9%
classic32 Right aligned numbers 🟢 99.9%
classic33 Centered text 🟢 99.9%
classic34 Explicit column widths 🟢 99.9%
classic35 Explicit row heights 🟢 99.5%
classic36 Merged cells 🟢 99.9%
classic37 Freeze panes 🟢 99.6%
classic38 Hyperlink cell 🟢 99.9%
classic39 Financial table 🟢 99.8%
classic40 Scientific notation 🟢 99.9%
classic41 Integer vs float 🟢 99.9%
classic42 Boolean values 🟢 99.6%
classic43 Inventory report 🟢 99.5%
classic44 Employee roster 🟢 98.0%
classic45 Sales by region 🟢 99.9%
classic46 Grade book 🟢 99.6%
classic47 Time series 🟢 99.3%
classic48 Survey results 🟢 99.6%
classic49 Contact list 🟢 98.5%
classic50 Budget vs actuals 🟢 99.6%
classic51 Product catalog 🟢 98.5%
classic52 Pivot summary 🟢 99.6%
classic53 Invoice 🟢 99.5%
classic54 Multi level header 🟢 99.8%
classic55 Error values 🟢 99.8%
classic56 Alternating row colors 🟢 99.6%
classic57 Cjk only 🟢 91.1%
classic58 Mixed numeric formats 🟢 99.5%
classic59 Multi sheet summary 🟢 99.9%
classic60 Large wide table 🟢 97.4%
classic61 Product card with image 🟢 99.9%
classic62 Company logo header 🟢 99.6%
classic63 Two products side by side 🟢 99.8%
classic64 Employee directory with photo 🟢 99.1%
classic65 Inventory with product photos 🟢 99.4%
classic66 Invoice with logo 🟢 99.2%
classic67 Real estate listing 🟢 99.8%
classic68 Restaurant menu 🟢 98.6%
classic69 Image only sheet 🟢 100.0%
classic70 Product catalog with images 🟢 99.2%
classic71 Multi sheet with images 🟢 99.8%
classic72 Bar chart image with data 🟢 99.5%
classic73 Event flyer with banner 🟢 99.6%
classic74 Dashboard with kpi image 🟢 97.9%
classic75 Certificate with seal 🟢 99.5%
classic76 Product image grid 🟢 99.7%
classic77 News article with hero image 🟢 99.6%
classic78 Small icon per row 🟢 99.2%
classic79 Wide panoramic banner 🟢 99.8%
classic80 Portrait tall image 🟢 99.8%
classic81 Step by step with images 🟢 99.7%
classic82 Before after images 🟢 99.4%
classic83 Color swatch palette 🟢 99.4%
classic84 Travel destination cards 🟢 99.6%
classic85 Lab results with image 🟢 99.2%
classic86 Software screenshot features 🟢 98.7%
classic87 Sports results with logos 🟢 99.8%
classic88 Image after data 🟢 99.7%
classic89 Nutrition label with image 🟢 99.5%
classic90 Project status with milestones 🟢 99.0%
classic91 Simple bar chart 🟢 96.6%
classic92 Horizontal bar chart 🟢 96.9%
classic93 Line chart 🟢 93.2%
classic94 Pie chart 🟢 97.2%
classic95 Area chart 🟡 76.4%
classic96 Scatter chart 🟢 94.8%
classic97 Doughnut chart 🟢 97.5%
classic98 Radar chart 🟢 95.1%
classic99 Bubble chart 🟢 92.0%
classic100 Stacked bar chart 🟢 95.0%
classic101 Percent stacked bar 🟢 93.6%
classic102 Line chart with markers 🟢 93.0%
classic103 Pie chart with labels 🟡 86.9%
classic104 Combo bar line chart 🟡 81.6%
classic105 3d bar chart 🟡 85.8%
classic106 3d pie chart 🟢 96.7%
classic107 Multi series line 🟡 80.6%
classic108 Stacked area chart 🟢 94.4%
classic109 Scatter with trendline 🟢 92.3%
classic110 Chart with legend 🟡 84.7%
classic111 Chart with axis labels 🟢 92.1%
classic112 Multiple charts 🟡 85.4%
classic113 Chart sheet 🟡 86.4%
classic114 Chart large dataset 🟢 91.6%
classic115 Chart negative values 🟢 92.1%
classic116 Percent stacked area 🟢 93.8%
classic117 Stock ohlc chart 🟡 80.9%
classic118 Bar chart custom colors 🟢 95.5%
classic119 Dashboard multi charts 🟢 92.1%
classic120 Chart with date axis 🟡 76.1%
classic121 Thin borders 🟢 99.7%
classic122 Thick outer thin inner 🟢 99.6%
classic123 Dashed borders 🟢 99.1%
classic124 Colored borders 🟢 99.7%
classic125 Solid fills 🟢 99.2%
classic126 Dark header 🟢 99.5%
classic127 Font styles 🟢 99.6%
classic128 Font sizes 🟢 99.0%
classic129 Alignment combos 🟢 99.8%
classic130 Wrap and indent 🟢 99.5%
classic131 Number formats 🟢 99.6%
classic132 Striped table 🟢 99.0%
classic133 Gradient rows 🟢 99.6%
classic134 Heatmap 🟢 98.8%
classic135 Bottom border only 🟢 99.8%
classic136 Financial report styled 🟢 99.3%
classic137 Checkerboard 🟢 98.4%
classic138 Color grid 🟢 99.4%
classic139 Pattern fills 🟢 99.2%
classic140 Rotated text 🟢 98.1%
classic141 Mixed edge borders 🟢 99.7%
classic142 Styled invoice 🟢 98.3%
classic143 Colored tabs 🟢 100.0%
classic144 Note style cells 🟢 99.6%
classic145 Status badges 🟢 99.1%
classic146 Double border table 🟢 99.6%
classic147 Multi sheet styled 🟢 99.7%
classic148 Frozen styled grid 🟢 97.3%
classic149 Merged styled sections 🟢 98.7%
classic150 Kitchen sink styles 🟢 97.5%
classic151 Multilingual greetings 🟢 93.5%
classic152 Emoji sampler 🟢 91.1%
classic153 Currency symbols 🟢 98.5%
classic154 Math symbols 🟢 95.7%
classic155 Diacritical marks 🟢 99.8%
classic156 Rtl bidi text 🟡 84.0%
classic157 Cjk extended 🟢 91.3%
classic158 Emoji skin tones 🟢 99.3%
classic159 Zwj emoji 🟢 90.6%
classic160 Punctuation marks 🟢 94.4%
classic161 Box drawing 🟢 95.0%
classic162 Cjk emoji styled 🟡 86.5%
classic163 Cyrillic alphabets 🟢 99.6%
classic164 Indic scripts 🟡 87.4%
classic165 Southeast asian 🟢 96.0%
classic166 Emoji progress 🟢 98.6%
classic167 Musical symbols 🟢 90.0%
classic168 Mixed ltr rtl styled 🟢 94.5%
classic169 Korean invoice 🟡 88.4%
classic170 Emoji dashboard 🟢 96.3%
classic171 Ipa phonetic 🟢 97.6%
classic172 Emoji timeline 🟢 95.3%
classic173 African languages 🟢 90.8%
classic174 Technical symbols 🟢 94.4%
classic175 Multiscript catalog 🟢 92.6%
classic176 Combining characters 🟢 94.5%
classic177 Emoji calendar 🟡 88.4%
classic178 Caucasus ethiopic 🟢 96.9%
classic179 Emoji inventory 🟢 91.0%
classic180 Polyglot paragraph 🟢 93.6%
classic181 Feedback tracker with images 🟢 99.4%
classic182 Dense long text columns 🟢 96.5%
classic183 Mixed content grid 🟢 99.4%
classic184 Wide narrow columns 🟢 98.4%
classic185 Tall rows vertical align 🟢 99.7%
classic186 Multi sheet image report 🟢 99.6%
classic187 Bug report with screenshots 🟢 98.2%
classic188 Merged header with images 🟢 99.5%
classic189 Alternating image text rows 🟢 95.3%
classic190 Dashboard kpi images 🟢 99.5%
classic191 Payroll calculator 🟡 89.5%
### DOCX 基准测试 MiniPdf DOCX 的输出与 LibreOffice 作为参考渲染器进行对比,涵盖 **180 个经典测试用例**。 | 类别 | 数量 | 阈值 | |---|---|---| | 🟢 优秀 | 175 | ≥ 90% | | 🟡 可接受 | 16 | 70% – 90% | | 🔴 待改进 | 0 | < 70% | **整体平均分: 96.9%**(文本相似度 40% + 视觉相似度 40% + 页数 20%) #### DOCX 视觉对比 所有 DOCX 测试用例对比 MiniPdf 输出与 LibreOffice 参考。多页结果仅显示第 1 页。
MiniPdfLibreOffice (Reference)
classic01 Basic table with headers 🟢 99.9%
classic02 Multiple worksheets 🟢 99.8%
classic03 Empty workbook 🟢 100.0%
classic04 Single cell 🟢 100.0%
classic05 Wide table 🟢 99.8%
classic06 Tall table 🟢 97.8%
classic07 Numbers only 🟢 100.0%
classic08 Mixed text and numbers 🟢 99.9%
classic09 Long text 🟢 98.4%
classic10 Special xml characters 🟢 99.9%
classic11 Sparse rows 🟢 100.0%
classic12 Sparse columns 🟢 99.9%
classic13 Date strings 🟢 99.9%
classic14 Decimal numbers 🟢 99.9%
classic15 Negative numbers 🟢 99.9%
classic16 Percentage strings 🟢 99.4%
classic17 Currency strings 🟢 99.9%
classic18 Large dataset 🟢 95.7%
classic19 Single column list 🟢 99.9%
classic20 All empty cells 🟢 100.0%
classic21 Header only 🟢 99.9%
classic22 Long sheet name 🟢 99.9%
classic23 Unicode text 🟢 91.3%
classic24 Red text 🟢 99.9%
classic25 Multiple colors 🟢 99.8%
classic26 Inline strings 🟢 99.9%
classic27 Single row 🟢 99.9%
classic28 Duplicate values 🟢 99.9%
classic29 Formula results 🟢 99.9%
classic30 Mixed empty and filled sheets 🟢 100.0%
classic31 Bold header row 🟢 99.9%
classic31 Bold header row 🟢 99.9%
classic32 Right aligned numbers 🟢 99.9%
classic32 Right aligned numbers 🟢 99.9%
classic33 Centered text 🟢 99.9%
classic33 Centered text 🟢 99.9%
classic34 Explicit column widths 🟢 99.9%
classic34 Explicit column widths 🟢 99.9%
classic35 Explicit row heights 🟢 99.5%
classic35 Explicit row heights 🟢 99.5%
classic36 Merged cells 🟢 99.9%
classic36 Merged cells 🟢 99.9%
classic37 Freeze panes 🟢 99.6%
classic37 Freeze panes 🟢 99.6%
classic38 Hyperlink cell 🟢 99.9%
classic38 Hyperlink cell 🟢 99.9%
classic39 Financial table 🟢 99.8%
classic39 Financial table 🟢 99.8%
classic40 Scientific notation 🟢 99.9%
classic40 Scientific notation 🟢 99.9%
classic41 Integer vs float 🟢 99.9%
classic41 Integer vs float 🟢 99.9%
classic42 Boolean values 🟢 99.6%
classic42 Boolean values 🟢 99.6%
classic43 Inventory report 🟢 99.5%
classic43 Inventory report 🟢 99.5%
classic44 Employee roster 🟢 98.0%
classic44 Employee roster 🟢 98.0%
classic45 Sales by region 🟢 99.9%
classic45 Sales by region 🟢 99.9%
classic46 Grade book 🟢 99.6%
classic46 Grade book 🟢 99.6%
classic47 Time series 🟢 99.3%
classic47 Time series 🟢 99.3%
classic48 Survey results 🟢 99.6%
classic48 Survey results 🟢 99.6%
classic49 Contact list 🟢 98.5%
classic49 Contact list 🟢 98.5%
classic50 Budget vs actuals 🟢 99.6%
classic50 Budget vs actuals 🟢 99.6%
classic51 Product catalog 🟢 98.5%
classic51 Product catalog 🟢 98.5%
classic52 Pivot summary 🟢 99.6%
classic52 Pivot summary 🟢 99.6%
classic53 Invoice 🟢 99.5%
classic53 Invoice 🟢 99.5%
classic54 Multi level header 🟢 99.8%
classic54 Multi level header 🟢 99.8%
classic55 Error values 🟢 99.8%
classic55 Error values 🟢 99.8%
classic56 Alternating row colors 🟢 99.6%
classic56 Alternating row colors 🟢 99.6%
classic57 Cjk only 🟢 91.1%
classic57 Cjk only 🟢 91.1%
classic58 Mixed numeric formats 🟢 99.5%
classic58 Mixed numeric formats 🟢 99.5%
classic59 Multi sheet summary 🟢 99.9%
classic59 Multi sheet summary 🟢 99.9%
classic60 Large wide table 🟢 97.4%
classic60 Large wide table 🟢 97.4%
classic61 Product card with image 🟢 99.9%
classic62 Company logo header 🟢 99.6%
classic63 Two products side by side 🟢 99.8%
classic64 Employee directory with photo 🟢 99.1%
classic65 Inventory with product photos 🟢 99.4%
classic66 Invoice with logo 🟢 99.2%
classic67 Real estate listing 🟢 99.8%
classic68 Restaurant menu 🟢 98.6%
classic69 Image only sheet 🟢 100.0%
classic70 Product catalog with images 🟢 99.2%
classic71 Multi sheet with images 🟢 99.8%
classic72 Bar chart image with data 🟢 99.5%
classic73 Event flyer with banner 🟢 99.6%
classic74 Dashboard with kpi image 🟢 97.9%
classic75 Certificate with seal 🟢 99.5%
classic76 Product image grid 🟢 99.7%
classic77 News article with hero image 🟢 99.6%
classic78 Small icon per row 🟢 99.2%
classic79 Wide panoramic banner 🟢 99.8%
classic80 Portrait tall image 🟢 99.8%
classic81 Step by step with images 🟢 99.7%
classic82 Before after images 🟢 99.4%
classic83 Color swatch palette 🟢 99.4%
classic84 Travel destination cards 🟢 99.6%
classic85 Lab results with image 🟢 99.2%
classic86 Software screenshot features 🟢 98.7%
classic87 Sports results with logos 🟢 99.8%
classic88 Image after data 🟢 99.7%
classic89 Nutrition label with image 🟢 99.5%
classic90 Project status with milestones 🟢 99.0%
classic91 Simple bar chart 🟢 96.6%
classic92 Horizontal bar chart 🟢 96.9%
classic93 Line chart 🟢 93.2%
classic94 Pie chart 🟢 97.2%
classic95 Area chart 🟡 76.4%
classic96 Scatter chart 🟢 94.8%
classic97 Doughnut chart 🟢 97.5%
classic98 Radar chart 🟢 95.1%
classic99 Bubble chart 🟢 92.0%
classic100 Stacked bar chart 🟢 95.0%
classic101 Percent stacked bar 🟢 93.6%
classic102 Line chart with markers 🟢 93.0%
classic103 Pie chart with labels 🟡 86.9%
classic104 Combo bar line chart 🟡 81.6%
classic105 3d bar chart 🟡 85.8%
classic106 3d pie chart 🟢 96.7%
classic107 Multi series line 🟡 80.6%
classic108 Stacked area chart 🟢 94.4%
classic109 Scatter with trendline 🟢 92.3%
classic110 Chart with legend 🟡 84.7%
classic111 Chart with axis labels 🟢 92.1%
classic112 Multiple charts 🟡 85.4%
classic113 Chart sheet 🟡 86.4%
classic114 Chart large dataset 🟢 91.6%
classic115 Chart negative values 🟢 92.1%
classic116 Percent stacked area 🟢 93.8%
classic117 Stock ohlc chart 🟡 80.9%
classic118 Bar chart custom colors 🟢 95.5%
classic119 Dashboard multi charts 🟢 92.1%
classic120 Chart with date axis 🟡 76.1%
classic121 Thin borders 🟢 99.7%
classic122 Thick outer thin inner 🟢 99.6%
classic123 Dashed borders 🟢 99.1%
classic124 Colored borders 🟢 99.7%
classic125 Solid fills 🟢 99.2%
classic126 Dark header 🟢 99.5%
classic127 Font styles 🟢 99.6%
classic128 Font sizes 🟢 99.0%
classic129 Alignment combos 🟢 99.8%
classic130 Wrap and indent 🟢 99.5%
classic131 Number formats 🟢 99.6%
classic132 Striped table 🟢 99.0%
classic133 Gradient rows 🟢 99.6%
classic134 Heatmap 🟢 98.8%
classic135 Bottom border only 🟢 99.8%
classic136 Financial report styled 🟢 99.3%
classic137 Checkerboard 🟢 98.4%
classic138 Color grid 🟢 99.4%
classic139 Pattern fills 🟢 99.2%
classic140 Rotated text 🟢 98.1%
classic141 Mixed edge borders 🟢 99.7%
classic142 Styled invoice 🟢 98.3%
classic143 Colored tabs 🟢 100.0%
classic144 Note style cells 🟢 99.6%
classic145 Status badges 🟢 99.1%
classic146 Double border table 🟢 99.6%
classic147 Multi sheet styled 🟢 99.7%
classic148 Frozen styled grid 🟢 97.3%
classic149 Merged styled sections 🟢 98.7%
classic150 Kitchen sink styles 🟢 97.5%
classic181 Feedback tracker with images 🟢 99.4%
classic182 Dense long text columns 🟢 96.5%
classic183 Mixed content grid 🟢 99.4%
classic184 Wide narrow columns 🟢 98.4%
classic185 Tall rows vertical align 🟢 99.7%
classic186 Multi sheet image report 🟢 99.6%
classic187 Bug report with screenshots 🟢 98.2%
classic188 Merged header with images 🟢 99.5%
classic189 Alternating image text rows 🟢 95.3%
classic190 Dashboard kpi images 🟢 99.5%
classic191 Payroll calculator 🟡 89.5%
## 许可证 本项目基于 [Apache License 2.0](LICENSE) 授权。