Releases: mini-software/MiniPdf
Release list
v0.37.2
What's New in v0.37.2
Highlights
- More accurate XLSX-to-PDF pagination -- large generated worksheets now follow Office-compatible A4 sizing, default row metrics, and horizontal page grouping.
- Fixed wide and multi-sheet XLSX output -- worksheets without column metadata use the appropriate default-width behavior, preventing missing columns and obsolete extra pages.
- Improved fit-to-page handling -- unflagged
fitToWidth/fitToHeightmetadata no longer compresses large worksheets into unreadable output, and fixed-height rows scale correctly after manual page breaks. - Improved legacy Chinese rendering -- refined Simplified Chinese fallback selection and glyph rendering for older Office documents.
- Better visual regression tooling -- PDF benchmark reports can generate configurable pixel-difference heatmaps and bounded page comparisons for very large documents.
- Expanded reference workflow -- LibreOffice and Apache POI source lookup tooling now supports reusable research notes.
Validation
- 153 MiniPdf tests passing.
- XLSX issue #82 wide-table benchmark: 13/13 pages, 0.9994 text similarity, 0.9594 overall score.
- Large XLSX page-size and pagination regressions are covered by focused issue-file tests.
Downloads
| Platform | CLI | GUI |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
GUI archives include the native SkiaSharp, HarfBuzzSharp, and platform graphics libraries required to launch the application.
Changes since v0.36.2
6a44185Fix A4 sizing for large generated XLSX-to-PDF tables3b397aeRemove obsolete XLSX issue 82 reference image702ece4Fix column sizing for multi-sheet XLSX-to-PDF conversionbd32e9dImprove large generated table pagination in XLSX-to-PDF conversion5eff455Fix fixed-row scaling after manual page breaks in XLSX-to-PDF conversion70bdf2fRefine legacy Chinese font rendering in XLSX-to-PDF conversion93719ecAdd configurable pixel-difference heatmaps to PDF benchmark reportsa40a5afImprove legacy Simplified Chinese font fallback in PDF renderingf2da369Improve document rendering benchmarks and reference skills
Git Diff Summary
141 files changed, 532651 insertions(+), 853 deletions(-)
Core implementation:
- src/MiniPdf/ExcelReader.cs: 23 insertions, 8 deletions
- src/MiniPdf/ExcelToPdfConverter.cs: 41 insertions, 16 deletions
- src/MiniPdf/PdfWriter.cs: 59 insertions, 1 deletion
- src/MiniPdf/DocxToPdfConverter.cs: 14 insertions
Tests and tooling:
- tests/MiniPdf.Tests/ExcelToPdfConverterTests.cs: 69 insertions, 1 deletion
- tests/MiniPdf.Tests/XlsxIssueFileTests.cs: 34 insertions
- tests/MiniPdf.Benchmark/compare_pdfs.py: 177 insertions, 2 deletions
- Issue XLSX, Office reference PDFs, comparison reports, and visual diff assets added/updated
Packages
Publishing this release triggers:
MiniPdfNuGet package0.37.2MiniPdf.CliNuGet package0.37.2- Native AOT CLI downloads for six platform targets
- Native AOT GUI downloads for six platform targets
Full Changelog: v0.36.2...v0.37.2
v0.36.2
What's New in v0.36.2
Highlights
- Added XLSX layout controls for large worksheets (#81), available from both C# and CLI: landscape/portrait, fit-to-page, fit-to-width/height, print scale, scale-to-fit, rows-per-page, max rows/columns, and compressed PDF output.
- Expanded public
MiniPdfConversionOptionsso callers can use layout and PDF save options without relying on CLI-only behavior. - Added CLI layout flags and help text for XLSX page fitting, scaling, print limits, and compact output workflows.
- Improved XLSX/PDF regression coverage with issue files, rendering limit tests, page layout assertions, and content stream compression tests.
- Improved PDF font measurement and refreshed benchmark output for
docx_classic105_certificate. - Synced README layout option examples across localized documentation and added the AGENTS documentation sync workflow rule.
Downloads
Release assets are built and attached by the release workflows after the release is published.
| Platform | CLI | GUI |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
Changes since v0.35.2
- b208304 Add unit tests for XLSX to PDF conversion issues
- 18e1a0a feat(pdf): enhance font measurement and update benchmark report for docx_classic105_certificate
- 8b93a74 Add tests for Excel to PDF conversion limits and PDF content stream compression
Git Diff Summary
757 files changed, 7089 insertions(+), 5733 deletions(-)
0.9% documents/
0.1% src/MiniPdf.Cli/
0.6% src/MiniPdf/
0.1% tests/Issue_Files/reference_xlsx/
5.4% tests/Issue_Files/reports_docx/images/
0.2% tests/Issue_Files/reports_docx/
0.3% tests/Issue_Files/reports_pptx/images/
0.2% tests/Issue_Files/reports_pptx/
28.5% tests/Issue_Files/reports_xlsx/images/
0.2% tests/Issue_Files/reports_xlsx/
0.1% tests/Issue_Files/xlsx/
33.2% tests/MiniPdf.Benchmark/reports/images/
0.2% tests/MiniPdf.Benchmark/reports/
28.4% tests/MiniPdf.Benchmark/reports_docx/images/
0.2% tests/MiniPdf.Benchmark/reports_docx/
0.3% tests/MiniPdf.Tests/
Release target commit: b2083045a65a3a7f8d8577680a4c1bcc9c116bee
Full Changelog: v0.35.2...v0.36.2
v0.35.2
Release v0.35.2
Patch release generated from git diff v0.35.1..HEAD at commit 2000349.
Git diff
Compare: v0.35.1...v0.35.2
git fetch --tags
git diff v0.35.1..v0.35.2Changes
- Fixed DOCX relationship target resolution for root-relative relationship paths, including images referenced as
/media/.... - Fixed header/footer relationship file lookup to derive
.relspaths from the resolved part path. - Added regression coverage for DOCX root-relative image relationships.
- Added Issue 83 DOCX/PDF/image reference artifacts and updated comparison report output.
- Increased GitHub Pages deployment timeout and reporting interval.
Commits
- 2000349 Add reference image for Issue 83 output in reports_docx
- e271b84 feat(github-actions): increase timeout and reporting interval for GitHub Pages deployment
Changed files
.github/workflows/pages.yml | 3 +++
src/MiniPdf/DocxReader.cs | 28 ++++++++++++++++-----
tests/Issue_Files/docx/Issue83_Output.docx | Bin 0 -> 19397 bytes
.../Issue_Files/reference_docx/Issue83_Output.pdf | Bin 0 -> 14968 bytes
.../reports_docx/comparison_report.json | 26 +++++++++++++++++++
.../Issue_Files/reports_docx/comparison_report.md | 23 +++++++++++++++--
.../images/Issue83_Output_p1_minipdf.png | Bin 0 -> 14227 bytes
.../images/Issue83_Output_p1_reference.png | Bin 0 -> 14147 bytes
tests/MiniPdf.Tests/DocxToPdfConverterTests.cs | 20 ++++++++++++---
9 files changed, 88 insertions(+), 12 deletions(-)
File status
M .github/workflows/pages.yml
M src/MiniPdf/DocxReader.cs
A tests/Issue_Files/docx/Issue83_Output.docx
A tests/Issue_Files/reference_docx/Issue83_Output.pdf
M tests/Issue_Files/reports_docx/comparison_report.json
M tests/Issue_Files/reports_docx/comparison_report.md
A tests/Issue_Files/reports_docx/images/Issue83_Output_p1_minipdf.png
A tests/Issue_Files/reports_docx/images/Issue83_Output_p1_reference.png
M tests/MiniPdf.Tests/DocxToPdfConverterTests.cs
GUI download
Open the release page and download the source archives from the browser:
https://github.com/mini-software/MiniPdf/releases/tag/v0.35.2
CLI download
# Download release assets, if any are attached
gh release download v0.35.2 --repo mini-software/MiniPdf
# Download source archives
curl -L -o MiniPdf-v0.35.2.zip https://github.com/mini-software/MiniPdf/archive/refs/tags/v0.35.2.zip
curl -L -o MiniPdf-v0.35.2.tar.gz https://github.com/mini-software/MiniPdf/archive/refs/tags/v0.35.2.tar.gzv0.35.1
What's New in v0.35.1
Highlights
- XLSX wide-table layout fixes - improved handling for programmatically generated spreadsheets that emit column widths without
customWidth, infer readable widths when column metadata is absent, repeat first-row print titles correctly, and add Excel-like cell text insets so adjacent text columns do not visually collide. - PPTX text fidelity improvements - enhanced whitespace/tab preservation and East Asian typeface handling for PowerPoint conversion.
- Benchmark tooling updates - improved shared benchmark manifest/report plumbing, filtered issue comparisons, and richer PDF comparison behavior.
- Rust converter progress - expanded DOCX/XLSX/PDF conversion support in
minipdf-rs, including dependency lockfile updates. - Documentation refresh - synchronized README download links and translated README content.
Downloads
CLI and GUI binaries are built and attached automatically by the release workflows after this release is published.
| Platform | CLI Download | GUI Download |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip | minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip | minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz | minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz | minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz | minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz | minipdf-gui-osx-arm64.tar.gz |
Changes since v0.34.1
2217a69Refactor code structure for improved readability and maintainability7107672feat(excel): enhance column width handling for better PDF rendering and add tests for inferred wide columnsaa77efafeat(pptx): enhance text handling to preserve whitespace and tabs, and support East Asian typefaces80a7cebEnhance benchmark scripts and comparison logicb09cad4fix(docs): update links in translated README files for consistency
Diff Summary
.github/skills/sync-readme-translations/SKILL.md | 2 +-
README.md | 3 +-
documents/README.fr.md | 3 +-
documents/README.it.md | 3 +-
documents/README.ja.md | 3 +-
documents/README.ko.md | 3 +-
documents/README.zh-CN.md | 5 +-
documents/README.zh-TW.md | 3 +-
minipdf-rs/Cargo.lock | 375 +++++++++++++++++++++
minipdf-rs/crates/minipdf-cli/src/main.rs | 8 +-
minipdf-rs/crates/minipdf/src/docx.rs | 64 +++-
minipdf-rs/crates/minipdf/src/lib.rs | 71 +++-
minipdf-rs/crates/minipdf/src/office.rs | 2 +-
minipdf-rs/crates/minipdf/src/pdf.rs | 20 +-
minipdf-rs/crates/minipdf/src/xlsx.rs | 97 +++++-
scripts/Run-Benchmark.ps1 | 33 +-
scripts/Run-Benchmark_docx.ps1 | 33 +-
scripts/Run-Benchmark_pptx.ps1 | 29 +-
src/MiniPdf/ExcelReader.cs | 29 +-
src/MiniPdf/ExcelToPdfConverter.cs | 79 +++--
src/MiniPdf/PptxReader.cs | 59 +++-
src/MiniPdf/PptxToPdfConverter.cs | 47 ++-
tests/Issue_Files/reference_xlsx/XlsxIssue82_WideTable.pdf | Bin 0 -> 506241 bytes
tests/Issue_Files/reports_xlsx/comparison_report.json | 104 ++++++
tests/Issue_Files/reports_xlsx/comparison_report.md | 149 +++++++-
tests/Issue_Files/reports_xlsx/images/XlsxIssue82_WideTable_*.png | Bin new benchmark images
tests/Issue_Files/xlsx/XlsxIssue82_WideTable.xlsx | Bin 0 -> 17271 bytes
tests/MiniPdf.Benchmark/benchmark_manifest.sample.json | 25 ++
tests/MiniPdf.Benchmark/compare_pdfs.py | 315 +++++++++++++++--
tests/MiniPdf.Benchmark/run_benchmark.py | 63 +++-
tests/MiniPdf.Benchmark/run_benchmark_docx.py | 63 +++-
tests/MiniPdf.Benchmark/run_benchmark_pptx.py | 53 ++-
tests/MiniPdf.Tests/ExcelToPdfConverterTests.cs | 106 +++++-
tests/MiniPdf.Tests/PptxToPdfConverterTests.cs | 75 ++++-
60 files changed, 1764 insertions(+), 160 deletions(-)
Full Changelog: v0.34.1...v0.35.1
v0.34.1
What's New in v0.34.1
Highlights
- DOCX paragraph layout refinement -- improves paragraph handling with better line spacing and indentation logic.
- Issue 78 benchmark update -- refreshes the DOCX comparison output and reference assets for the paragraph layout change.
Downloads
The release workflows build and attach both CLI and GUI packages automatically after this release is published.
| Platform | CLI | GUI |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
Changes since v0.34.0
6289c48feat(docx): enhance paragraph handling with improved line spacing and indentation logic
src/MiniPdf/DocxReader.cs | 13 ++++-
src/MiniPdf/DocxToPdfConverter.cs | 65 ++++++++++++++++++---
tests/Issue_Files/reference_docx/TestIssue78.pdf | Bin 57420 -> 57420 bytes
.../reports_docx/comparison_report.json | 10 ++--
.../Issue_Files/reports_docx/comparison_report.md | 18 +++---
.../reports_docx/images/TestIssue78_p1_minipdf.png | Bin 178267 -> 177685 bytes
6 files changed, 82 insertions(+), 24 deletions(-)
Full Changelog: v0.34.0...v0.34.1
v0.34.0
What's New in v0.34.0
Highlights
- PPTX to PDF conversion -- added a full PPTX conversion path with slide shape, image, table, SmartArt fallback, SVG blip, crop, and text rendering support.
- Improved PowerPoint fidelity -- fixed theme color luminosity transforms with HSL luminance handling, improving Office-compatible color output.
- Inherited placeholder text layout -- preserves layout/master placeholder alignment, spacing, line spacing, empty paragraphs, and hanging bullet indentation.
- PPTX benchmark coverage -- added Asian Pacific PPTX issue files, reference PDFs, rendered comparison images, benchmark scripts, and conversion automation.
- CLI, GUI, and web polish -- updated converter entry points, README content, localized docs, API/Web behavior, and GUI flow around the expanded conversion support.
Validation
- Focused PPTX tests:
dotnet test tests/MiniPdf.Tests --filter "PptxToPdfConverterTests" --no-restore-- 18/18 passed. - Full test suite:
dotnet test tests/MiniPdf.Tests --no-restore-- 134/134 passed. - Library build:
dotnet build src/MiniPdf/MiniPdf.csproj --no-restore-- 0 errors. - Asian Pacific PPTX benchmark: overall
0.9226, visual average0.8567, text similarity0.9499.
Downloads
Assets are built and attached automatically by GitHub Actions after the release is created.
GUI Download
Open the release page in a browser and download the minipdf-gui-* package for your platform:
https://github.com/mini-software/MiniPdf/releases/tag/v0.34.0
| Platform | GUI asset |
|---|---|
| Windows x64 | minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-gui-osx-arm64.tar.gz |
CLI Download
Use GitHub CLI to download the command-line package for your platform:
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-win-x64.zip"
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-win-arm64.zip"
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-linux-x64.tar.gz"
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-linux-arm64.tar.gz"
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-osx-x64.tar.gz"
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-osx-arm64.tar.gz"To download the GUI package from the CLI, use the corresponding minipdf-gui-* pattern, for example:
gh release download v0.34.0 --repo mini-software/MiniPdf --pattern "minipdf-gui-win-x64.zip"Changes since v0.33.0
f134527 Enhance PptxToPdfConverter to support text alignment and spacing for inherited placeholders
45cb5c1 feat(pptx): add luminosity transform adjustments in color conversion and update tests
3e7c332 Refactor PptxToPdfConverter to enhance text rendering and cropping functionality
95e84f2 Add automated benchmark for PPTX to PDF conversion
Git Diff Summary
.gitignore | 1 +
AGENTS.md | 2 +
MiniPdf.Api/Program.cs | 13 +-
MiniPdf.Web/MiniPdf.Web.Client/I18n.cs | 42 +-
MiniPdf.Web/MiniPdf.Web.Client/Pages/Converter.razor | 10 +-
MiniPdf.Web/MiniPdf.Web.Client/wwwroot/app.css | 2 +
MiniPdf.Web/README.md | 2 +-
README.md | 11 +-
documents/README.*.md | 78 +-
scripts/Run-Benchmark_pptx.ps1 | 67 +
src/MiniPdf.Cli/MiniPdf.Cli.csproj | 4 +-
src/MiniPdf.Cli/Program.cs | 10 +-
src/MiniPdf.Gui/ViewModels/MainWindowViewModel.cs | 3 +-
src/MiniPdf.Gui/Views/MainWindow.axaml.cs | 2 +-
src/MiniPdf/MiniPdf.cs | 127 +-
src/MiniPdf/MiniPdf.csproj | 4 +-
src/MiniPdf/PdfPage.cs | 20 +
src/MiniPdf/PdfWriter.cs | 31 +
src/MiniPdf/PptxReader.cs | 1610 ++++++++++++++++++++
src/MiniPdf/PptxToPdfConverter.cs | 836 ++++++++++
tests/Issue_Files/pptx/Asian Pacific.pptx | Bin 0 -> 547003 bytes
tests/Issue_Files/reference_pptx/Asian Pacific.pdf | Bin 0 -> 355585 bytes
tests/Issue_Files/reports_pptx/* | comparison report and rendered image assets
tests/MiniPdf.Benchmark/generate_reference_pdfs_pptx.py | 136 ++
tests/MiniPdf.Benchmark/run_benchmark_pptx.py | 152 ++
tests/MiniPdf.Scripts/convert_pptx_to_pdf.cs | 64 +
tests/MiniPdf.Tests/PptxToPdfConverterTests.cs | 883 +++++++++++
59 files changed, 4325 insertions(+), 96 deletions(-)
Full Changelog: v0.33.0...v0.34.0
v0.33.0
What's New in v0.33.0
Highlights
- Selected Excel sheet export -- .NET API overloads and the CLI now support rendering selected
.xlsxsheets by name or 1-based index, while the default behavior continues to render all visible sheets. - CLI sheet selection --
minipdf data.xlsx --sheets Summary,2can mix sheet names and indexes in a single command. - Experimental Rust implementation -- Added
minipdf-rs, an independent Rust workspace with a reusableminipdfcrate and CLI prototype for basic.xlsx/.docxtext extraction and PDF generation. - Excel conversion maintenance -- Refactored Excel reader, PDF writer, and conversion paths for readability and maintainability, with focused unit coverage for sheet selection behavior.
- Benchmark coverage -- Added a new issue XLSX fixture, LibreOffice reference PDF, comparison report, and visual snapshots for validation.
Downloads
CLI and GUI Native AOT binaries are built and uploaded automatically by GitHub Actions after this release is published.
| Platform | CLI Download | GUI Download |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip | minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip | minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz | minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz | minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz | minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz | minipdf-gui-osx-arm64.tar.gz |
Changes since v0.32.0
- 80d0717 Refactor code structure for improved readability and maintainability
- 90b6acc feat(excel): add support for rendering selected Excel sheets by name or index in PDF conversion
- 39037bf feat(rust): add experimental Rust implementation for MiniPdf with XLSX and DOCX support
Git Diff Summary
.gitignore | 1 +
README.md | 11 +
documents/README.fr.md | 4 +
documents/README.it.md | 4 +
documents/README.ja.md | 4 +
documents/README.ko.md | 4 +
documents/README.nuget.md | 4 +
documents/README.zh-CN.md | 4 +
documents/README.zh-TW.md | 4 +
minipdf-rs/Cargo.toml | 18 +
minipdf-rs/README.md | 38 ++
minipdf-rs/crates/minipdf-cli/Cargo.toml | 15 +
minipdf-rs/crates/minipdf-cli/src/main.rs | 115 +++++
minipdf-rs/crates/minipdf/Cargo.toml | 12 +
minipdf-rs/crates/minipdf/src/docx.rs | 110 +++++
minipdf-rs/crates/minipdf/src/lib.rs | 136 +++++
minipdf-rs/crates/minipdf/src/office.rs | 27 +
minipdf-rs/crates/minipdf/src/pdf.rs | 281 +++++++++++
minipdf-rs/crates/minipdf/src/xlsx.rs | 255 ++++++++++
src/MiniPdf.Cli/Program.cs | 25 +-
src/MiniPdf/ExcelReader.cs | 545 +++++++++++++++------
src/MiniPdf/ExcelToPdfConverter.cs | 133 +++--
src/MiniPdf/MiniPdf.cs | 102 +++-
src/MiniPdf/PdfPage.cs | 6 +-
src/MiniPdf/PdfTextBlock.cs | 8 +-
src/MiniPdf/PdfWriter.cs | 19 +
tests/Issue_Files/reference_xlsx/Grocery list1.pdf | Bin 0 -> 86288 bytes
.../reports_xlsx/comparison_report.json | 26 +
.../Issue_Files/reports_xlsx/comparison_report.md | 132 ++++-
.../images/Grocery list1_p1_minipdf.png | Bin 0 -> 148076 bytes
.../images/Grocery list1_p1_reference.png | Bin 0 -> 137334 bytes
tests/Issue_Files/xlsx/Grocery list1.xlsx | Bin 0 -> 24937 bytes
tests/MiniPdf.Benchmark/generate_reference_pdfs.py | 2 +-
tests/MiniPdf.Scripts/convert_xlsx_to_pdf.cs | 1 +
tests/MiniPdf.Tests/ExcelToPdfConverterTests.cs | 208 ++++++++
35 files changed, 2052 insertions(+), 202 deletions(-)
Full Changelog: v0.32.0...v0.33.0
v0.32.0
What's New in v0.32.0
Highlights
- DOCX table of contents rendering -- Empty TOC fields now generate heading entries in PDF output, with improved CJK title handling.
- Page field placeholders -- PAGE and NUMPAGES placeholder handling was refactored, including better support for formatted page numbers and tab leader width calculation.
- Benchmark coverage -- Added and refreshed DOCX/XLSX issue fixtures, reference PDFs, comparison reports, and visual snapshots for issue-driven validation.
- Project maintenance -- Refactored code structure for readability and maintainability, and added GitHub issue templates for bug and conversion quality reports.
Downloads
CLI and GUI Native AOT binaries are built and uploaded automatically by GitHub Actions after this release is published.
| Platform | CLI Download | GUI Download |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
Changes since v0.31.0
- c539e03 Refactor code structure for improved readability and maintainability
- 43d332d feat(tests): add TestIssue61 PDF and comparison images for validation
- 6b45501 feat(docx): enhance TOC generation and improve CJK title handling in PDF conversion
- b0577e1 feat(docx): refactor page field placeholder handling and improve tab leader character width calculation
- e8b6dde feat(toc): add support for empty TOC fields and generate heading entries in PDF
Git Diff Summary
381 files changed, 3816 insertions(+), 999 deletions(-)
Main areas changed:
.github/ISSUE_TEMPLATE/*src/MiniPdf/DocxReader.cssrc/MiniPdf/DocxToPdfConverter.cstests/Issue_Files/docx/*tests/Issue_Files/reference_docx/*tests/Issue_Files/reference_xlsx/*tests/Issue_Files/reports_docx/*tests/Issue_Files/reports_xlsx/*
Full Changelog: v0.31.0...v0.32.0
v0.31.0
What's New in v0.31.0
Highlights
- Excel merged-cell alignment coverage -- adds a regression workbook for issue 77 to track merged-cell alignment behavior in XLSX conversion.
- NuGet package documentation paths -- moves NuGet README files under
documents/and updates project packaging paths so package readmes resolve from the new location. - README cleanup -- removes unnecessary generated header text from the primary and localized README files.
Downloads
GitHub Actions will attach the CLI and GUI native AOT packages to this release after the release workflows finish.
| Platform | CLI | GUI |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
Changes since v0.30.0
9dda305Fix README file paths in project files and remove unnecessary header2a85333feat(excel): add test file for merged cell alignment issue
README.md | 1 -
documents/README.fr.md | 1 -
documents/README.it.md | 1 -
documents/README.ja.md | 1 -
documents/README.ko.md | 1 -
.../README.nuget.cli.md | 6 +-
README.nuget.md => documents/README.nuget.md | 8 +-
README.zh-CN.md => documents/README.zh-CN.md | 1 -
documents/README.zh-TW.md | 1 -
src/MiniPdf.Cli/MiniPdf.Cli.csproj | 2 +-
src/MiniPdf/ExcelToPdfConverter.cs | 124 +++++++++++++++------
src/MiniPdf/MiniPdf.csproj | 2 +-
.../xlsx/XlsxIssue77_MergedCellAlignment.xlsx | Bin 0 -> 15565 bytes
13 files changed, 95 insertions(+), 54 deletions(-)
Full Changelog: v0.30.0...v0.31.0
v0.30.0
What's New in v0.30.0
Highlights
- Excel conversion quality -- adds cell border handling and text normalization improvements in the Excel reader/PDF converter path.
- DOCX layout fixes -- improves row height calculation, cell baseline placement, and DOCX-to-PDF layout behavior.
- Font compatibility -- improves TrueType Collection handling and font name extraction in PDF output.
- Benchmark and issue coverage -- adds issue-file benchmark reporting, DOCX issue fixtures, XLSX issue fixtures, and comparison results for issue202605 and issue26050501.
- Project workflow polish -- adds GitHub issue templates and funding metadata, with README badge cleanup across translated docs.
Downloads
Release assets are built and uploaded automatically after this release is published.
| Platform | CLI Download | GUI Download |
|---|---|---|
| Windows x64 | minipdf-win-x64.zip |
minipdf-gui-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
minipdf-gui-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
minipdf-gui-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
minipdf-gui-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
minipdf-gui-osx-x64.tar.gz |
| macOS ARM64 | minipdf-osx-arm64.tar.gz |
minipdf-gui-osx-arm64.tar.gz |
Changes since v0.29.0
0e0be2ffeat(excel): enhance Excel reading and PDF conversion with cell border handling and text normalization99687e9feat(issue-templates): add multiple issue templates for bug reports, feature requests, documentation, and questions30a2714fix(readme): remove unnecessary badge links from multiple language README files7e733effeat(readme): add GitHub Sponsors badge to multiple language README files570192cfix(readme): update GitHub Sponsors badge for improved clarity5a0b6effeat(funding): add custom funding link to FUNDING.yml560f82dfeat(funding): add GitHub Sponsors link to README and create FUNDING.yml0d56324fix(docx): improve row height calculation and cell baseline placement in PDF conversion3da245efeat(benchmark): add score reporting and comparison for XLSX and DOCX files #74d7e8912Add comparison results for issue202605 and issue26050501 to the report7e43bb5Refactor code structure for improved readability and maintainability2c32126fix(pdf): enhance font handling for TrueType Collections and improve font name extraction79a6dferefactor(tests): remove obsolete benchmark test files
Git Diff Stat
.github/FUNDING.yml | 2 +
.github/ISSUE_TEMPLATE/bug_report.yml | 83 +++
.github/ISSUE_TEMPLATE/config.yml | 5 +
.github/ISSUE_TEMPLATE/conversion_quality.yml | 91 +++
.github/ISSUE_TEMPLATE/documentation.yml | 54 ++
.github/ISSUE_TEMPLATE/feature_request.yml | 76 +++
.github/ISSUE_TEMPLATE/question.yml | 70 +++
README.md | 2 -
README.zh-CN.md | 2 -
documents/README.fr.md | 2 -
documents/README.it.md | 2 -
documents/README.ja.md | 2 -
documents/README.ko.md | 2 -
documents/README.zh-TW.md | 2 -
scripts/Run-Benchmark_issues.ps1 | 74 +++
src/MiniPdf/DocxReader.cs | 75 ++-
src/MiniPdf/DocxToPdfConverter.cs | 612 ++++++++++++---------
src/MiniPdf/ExcelReader.cs | 9 +
src/MiniPdf/ExcelToPdfConverter.cs | 115 ++--
src/MiniPdf/PdfWriter.cs | 38 +-
tests/Issue_Files/docx/issue202605.docx | Bin 0 -> 29162 bytes
tests/Issue_Files/docx/issue26050501.docx | Bin 0 -> 18842 bytes
tests/Issue_Files/reference_docx/issue202605.pdf | Bin 0 -> 154034 bytes
tests/Issue_Files/reference_docx/issue26050501.pdf | Bin 0 -> 111155 bytes
tests/Issue_Files/reports_docx/comparison_report.json | 66 ++-
tests/Issue_Files/reports_docx/comparison_report.md | 387 ++++++++++++-
tests/Issue_Files/reports_docx/images/Class News_p1_minipdf.png | Bin 703953 -> 704021 bytes
tests/Issue_Files/reports_docx/images/Class News_p2_minipdf.png | Bin 834413 -> 834186 bytes
tests/Issue_Files/reports_docx/images/Class News_p3_minipdf.png | Bin 700528 -> 700600 bytes
tests/Issue_Files/reports_docx/images/Class News_p4_minipdf.png | Bin 837157 -> 837123 bytes
tests/Issue_Files/reports_docx/images/issue202605_p1_minipdf.png | Bin 0 -> 259243 bytes
tests/Issue_Files/reports_docx/images/issue202605_p1_reference.png | Bin 0 -> 264757 bytes
tests/Issue_Files/reports_docx/images/issue202605_p2_minipdf.png | Bin 0 -> 89605 bytes
tests/Issue_Files/reports_docx/images/issue202605_p2_reference.png | Bin 0 -> 84863 bytes
tests/Issue_Files/reports_docx/images/issue26050501_p1_minipdf.png | Bin 0 -> 340587 bytes
tests/Issue_Files/reports_docx/images/issue26050501_p1_reference.png | Bin 0 -> 346741 bytes
tests/Issue_Files/reports_docx/images/issue26050501_p2_minipdf.png | Bin 0 -> 240114 bytes
tests/Issue_Files/reports_docx/images/issue26050501_p2_reference.png | Bin 0 -> 224339 bytes
tests/Issue_Files/xlsx/XlsxIssue75.xlsx | Bin 0 -> 137387 bytes
tests/Issue_Files/xlsx/XlsxIssue77_Template1.xlsx | Bin 0 -> 15870 bytes
tests/Issue_Files/xlsx/XlsxIssue77_Template2_Workaround.xlsx | Bin 0 -> 16575 bytes
tests/MiniPdf.Benchmark/_calc_width.py | 70 ---
tests/MiniPdf.Benchmark/_check_classic50.py | 16 -
tests/MiniPdf.Benchmark/_check_classic71.py | 57 --
tests/MiniPdf.Benchmark/_check_classic71_spacing.py | 51 --
tests/MiniPdf.Benchmark/_check_classic71b.py | 37 --
tests/MiniPdf.Benchmark/_check_docdefaults.py | 57 --
tests/MiniPdf.Benchmark/_check_good_tier.py | 11 -
tests/MiniPdf.Benchmark/_check_scores.py | 31 --
tests/MiniPdf.Benchmark/_get_detail.py | 18 -
tests/MiniPdf.Benchmark/_tmp_stats.py | 23 -
51 files changed, 1433 insertions(+), 709 deletions(-)
Full Changelog: v0.29.0...v0.30.0