Skip to content

Releases: mini-software/MiniPdf

v0.37.2

Choose a tag to compare

@shps951023 shps951023 released this 15 Jul 02:53

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/fitToHeight metadata 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

  • 6a44185 Fix A4 sizing for large generated XLSX-to-PDF tables
  • 3b397ae Remove obsolete XLSX issue 82 reference image
  • 702ece4 Fix column sizing for multi-sheet XLSX-to-PDF conversion
  • bd32e9d Improve large generated table pagination in XLSX-to-PDF conversion
  • 5eff455 Fix fixed-row scaling after manual page breaks in XLSX-to-PDF conversion
  • 70bdf2f Refine legacy Chinese font rendering in XLSX-to-PDF conversion
  • 93719ec Add configurable pixel-difference heatmaps to PDF benchmark reports
  • a40a5af Improve legacy Simplified Chinese font fallback in PDF rendering
  • f2da369 Improve 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:

  • MiniPdf NuGet package 0.37.2
  • MiniPdf.Cli NuGet package 0.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

Choose a tag to compare

@shps951023 shps951023 released this 08 Jul 05:15

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 MiniPdfConversionOptions so 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

Choose a tag to compare

@shps951023 shps951023 released this 06 Jul 14:30

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.2

Changes

  • Fixed DOCX relationship target resolution for root-relative relationship paths, including images referenced as /media/....
  • Fixed header/footer relationship file lookup to derive .rels paths 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.gz

v0.35.1

Choose a tag to compare

@shps951023 shps951023 released this 02 Jul 16:36

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

  • 2217a69 Refactor code structure for improved readability and maintainability
  • 7107672 feat(excel): enhance column width handling for better PDF rendering and add tests for inferred wide columns
  • aa77efa feat(pptx): enhance text handling to preserve whitespace and tabs, and support East Asian typefaces
  • 80a7ceb Enhance benchmark scripts and comparison logic
  • b09cad4 fix(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

Choose a tag to compare

@shps951023 shps951023 released this 27 Jun 07:24

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

  • 6289c48 feat(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

Choose a tag to compare

@shps951023 shps951023 released this 27 Jun 06:46

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 average 0.8567, text similarity 0.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

Choose a tag to compare

@shps951023 shps951023 released this 27 Jun 01:48

What's New in v0.33.0

Highlights

  • Selected Excel sheet export -- .NET API overloads and the CLI now support rendering selected .xlsx sheets by name or 1-based index, while the default behavior continues to render all visible sheets.
  • CLI sheet selection -- minipdf data.xlsx --sheets Summary,2 can mix sheet names and indexes in a single command.
  • Experimental Rust implementation -- Added minipdf-rs, an independent Rust workspace with a reusable minipdf crate and CLI prototype for basic .xlsx / .docx text 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

Choose a tag to compare

@shps951023 shps951023 released this 23 Jun 01:46

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.cs
  • src/MiniPdf/DocxToPdfConverter.cs
  • tests/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

Choose a tag to compare

@shps951023 shps951023 released this 05 Jun 14:40

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

  • 9dda305 Fix README file paths in project files and remove unnecessary header
  • 2a85333 feat(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

Choose a tag to compare

@shps951023 shps951023 released this 04 Jun 06:37

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

  • 0e0be2f feat(excel): enhance Excel reading and PDF conversion with cell border handling and text normalization
  • 99687e9 feat(issue-templates): add multiple issue templates for bug reports, feature requests, documentation, and questions
  • 30a2714 fix(readme): remove unnecessary badge links from multiple language README files
  • 7e733ef feat(readme): add GitHub Sponsors badge to multiple language README files
  • 570192c fix(readme): update GitHub Sponsors badge for improved clarity
  • 5a0b6ef feat(funding): add custom funding link to FUNDING.yml
  • 560f82d feat(funding): add GitHub Sponsors link to README and create FUNDING.yml
  • 0d56324 fix(docx): improve row height calculation and cell baseline placement in PDF conversion
  • 3da245e feat(benchmark): add score reporting and comparison for XLSX and DOCX files #74
  • d7e8912 Add comparison results for issue202605 and issue26050501 to the report
  • 7e43bb5 Refactor code structure for improved readability and maintainability
  • 2c32126 fix(pdf): enhance font handling for TrueType Collections and improve font name extraction
  • 79a6dfe refactor(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