Releases: mini-software/MiniPdf
Release list
MiniPdf Java 0.4.0
MiniPdf Java 0.4.0
This release publishes the Java Maven artifacts (io.github.mini-software:minipdf and minipdf-cli) at version 0.4.0 to Maven Central.
What's new since 0.3.0
- Office cloud fonts: DOCX conversion now resolves the document's theme fonts from the Microsoft 365 cloud font cache (Source Sans Pro, Impact, Cochocib Script Latin Pro, ...) and real Windows font files, so letterhead templates render with Word's actual faces instead of CJK fallbacks.
- Inline EMF pictures: vector signatures rasterize with script-font substitution and
a:srcRectcrop support. - behindDoc shapes: grouped freeforms, standalone
wps:wspframes (full-page letterhead borders), and header-part shapes render at absolute page positions. - Theme colors:
a:alpha/a:lumModhandling plus clrMap aliases (tx1/bg1/tx2/bg2). - Word paragraph layout: theme major/minor fonts, per-paragraph cell fonts,
basedOnspacing inheritance, font-metric line heights, and CJK/Latin layout routing by East Asian characters. - Tables and images: tables no longer add synthetic spacing; picture-only paragraphs align images with Word.
- READMEs now link the Maven Central artifacts.
- CI: the JDK 10 test suite retries once on transient fork startup crashes.
v0.43.0
v0.43.0
Java DOCX renderer now aligns Latin document layout with Microsoft 365 Word: style heading colors, bullet markers, Word-calibrated wrap widths, contextual spacing, keepNext widow control, top-of-page baselines, and Word/LibreOffice-verified table geometry.
Highlights: Issue #187 - PR #188 - 14_Thesis_Chapter 0.9856 -> 0.9932 (text similarity 1.0, 2/2 pages).
What's Changed
85bbbdb5 Merge pull request #188 from mini-software/fix/java-docx-visual-parityd4859dd7 fix(java): align DOCX rendering with Word for Latin documents28cbae26 Merge pull request #186 from mini-software/fix/java-docx-vietnamese-layouteb0719c9 chore(benchmarks): move visual reports to hosted dashboard721d386a chore(benchmarks): publish visual reports to hosted dashboard614e962c Remove images43e5459c fix(java): preserve DOCX footnotes, highlights, and form layoutd977d69c fix(java): embed Unicode fonts and isolate release dependencies7ad637f4 Merge pull request #185 from mini-software/fix/java-docx-vietnamese-layout4e58cb5a chore(java): prepare 0.2.1 releasec2cf17b6 fix(java): match DOCX Unicode layout and page footerb9d53c9b Merge pull request #183 from mini-software/fix/java-pdfbox-3.0.8624f3cf7 fix(java): use Unicode TTF fallback on JDK 109f2cb724 fix(java): use standalone CJK font on JDK 104c404fe7 fix(java): preserve Unicode mappings on JDK 10744a5bb6 fix(java): update PDFBox to 3.0.8183a57d5 fix(java): extend Maven Central publish timeout (#182)c24cee0e Fix Linux CJK font loading for Java release (#181)041e838a Prepare Java 0.2.0 Maven Central release (#180)683ac36e feat(java): support JDK 8 through JDK 25cec055ed Merge pull request #179 from mini-software/fix/java-docx-pagination-orientation50d4eac5 fix(java): preserve DOCX table fonts and skip unsupported pictures309a5883 fix(java): preserve DOCX footers and mixed-script pagination7a4c0a97 fix(java): preserve multi-page DOCX form layout783a9784 Merge pull request #178 from mini-software/fix/java-docx-pagination-orientation8fe8afb7 fix(java): address DOCX review findingsbb5e889d Merge remote-tracking branch 'origin/main' into fix/java-docx-pagination-orientation59301e3f Improve Java DOCX pagination and form rendering0216edaa Merge pull request #177 from mini-software/fix/rust-font-fallback-cache51c4b052 fix(rust): cache font fallback selectionae9671f8 Merge pull request #176 from mini-software/fix/go-xlsx-text-overflow-pagination725ecdeb docs(go): refresh styled XLSX benchmark9d45e73d fix(dotnet): restore chart metadata parsingf17e62fd fix(go): render styled XLSX grids and charts6216961b Merge pull request #174 from mini-software/fix/go-xlsx-text-overflow-pagination414dd1df docs(go): publish full issue XLSX benchmark89382017 fix(go): format XLSX boolean cells94568915 fix(go): skip empty XLSX worksheets472fbba7 fix(go): preserve sparse XLSX layout80b32f60 fix(go): paginate overflowing XLSX text25af927b Align foundational Go conversion capabilities (#173)68c0f4c0 Prepare multi-language package releases (#172)62046ed4 Render page-anchored wrapTopAndBottom text boxes as floating boxes (#167)27845892 Add MiniPdf.ClearRegisteredFonts (#166)57f406ba Merge pull request #169 from mini-software/fix/rust-classic09-long-text-pagination17171f2d Merge remote-tracking branch 'origin/main' into fix/rust-classic09-long-text-pagination4376559d Merge pull request #171 from mini-software/fix/rust-skip-unsupported-font-outlines0d48c285 fix(rust): skip unsupported bitmap fonts2bd47c61 Merge pull request #170 from mini-software/docs/fix-agent-guidelines-heading09bfa550 docs: fix agent guideline heading level465e8ce9 fix(rust): paginate long single-column text8dd6252f Merge pull request #168 from mini-software/fix/issue-159-docx-layout-options8f75f90f feat(dotnet): add DOCX page layout options54f06487 Merge pull request #165 from Sen-CaPoo/fix/docx-behinddoc-group-textbox-fills1f4540e2 Handle multiple drawings in textbox host runsc91b31d7 Keep docstring coverage on every function the diff touches53541f08 Add XML doc comments for functions touched by the group fill fixfd35723d Render behindDoc wpg groups whose child shape carries a text box71c44aa6 Consolidate MiniPdf contribution guidance (#162)86b231a6 Fix DOCX employee directory rendering (#161)03832908 Merge pull request #157 from mini-software/fix/java-office-registered-fonts94a5391a docs(java): align font examples and support matrix314c25cd fix(java): close PDF content streams safely40fae470 fix(java): use registered fonts for Office textaac1a463 Merge pull request #156 from mini-software/fix/xlsx-chart-legend-gap-width0f28f700 fix(xlsx): improve clustered chart visual parity22719bf1 Merge pull request #152 from wooly905/improve/dotnet-visual-parity-20260907-09073255f6b7df Merge remote-tracking branch 'origin/main' into fix/pr152-merge-readiness9dd7c271 Strengthen chart regression and fork CI handlingc4205cf7 Merge pull request #154 from mini-software/feat/cross-platform-emf-renderingccd82741 Merge remote-tracking branch 'origin/main' into feat/cross-platform-emf-rendering55c0a8c2 Merge pull request #153 from mini-software/chore/explicit-contribution-workflow226d57d6 fix(workflow): address contribution review feedbackf98bd4c0 fix(dotnet): avoid MiniPdf namespace collisiondd712a4d fix(pack): preserve vendored license filename11698008 feat(dotnet): render metafiles with managed fallback9f4c1526 feat(drawing): vendor managed drawing backend4a4339a7 chore(contrib): make workflow explicit and lightweight475213fc Fix DOCX inline image page-break clipping and XLSX bar chart axis scaling4a965563 Merge pull request #149 from mini-software/fix/release-workflow-dispatch-permissionb9784037 Merge pull request #150 from mini-software/release/java-0.1.57cb8ab52 release(java): prepare 0.1.58f26209f fix(release): allow artifact workflow dispatch
Diff Summary (code files, binaries excluded)
src/MiniPdf/Drawing/Rendering/GraphicsState.cs | 94 +
src/MiniPdf/Drawing/Rendering/HatchRenderer.cs | 56 +
src/MiniPdf/Drawing/Rendering/ImageInterpolator.cs | 116 +
src/MiniPdf/Drawing/Rendering/ImageRenderer.cs | 61 +
src/MiniPdf/Drawing/Rendering/ImageTransformer.cs | 91 +
src/MiniPdf/Drawing/Rendering/LineCapRenderer.cs | 60 +
src/MiniPdf/Drawing/Rendering/PixelCompositor.cs | 53 +
src/MiniPdf/Drawing/Rendering/Rasterizer.cs | 253 +
src/MiniPdf/Drawing/Rendering/ScanlineBuffer.cs | 25 +
src/MiniPdf/Drawing/Rendering/StrokeExpander.cs | 90 +
src/MiniPdf/Drawing/Rendering/TextureSampler.cs | 119 +
src/MiniPdf/Drawing/Rendering/WmfPlayer.cs | 355 +
src/MiniPdf/Drawing/Text/Bidi/BidiAlgorithm.cs | 688 ++
src/MiniPdf/Drawing/Text/Bidi/BidiBrackets.cs | 183 +
.../Drawing/Text/Bidi/BidiCharacterTable.cs | 282 +
src/MiniPdf/Drawing/Text/Bidi/BidiCharacterType.cs | 77 +
src/MiniPdf/Drawing/Text/Bidi/BidiMirroring.cs | 161 +
.../Drawing/Text/Bidi/BidiParagraphDirection.cs | 17 +
src/MiniPdf/Drawing/Text/CharacterRange.cs | 31 +
src/MiniPdf/Drawing/Text/Font.cs | 255 +
src/MiniPdf/Drawing/Text/FontCollection.cs | 126 +
src/MiniPdf/Drawing/Text/FontFallbackChain.cs | 108 +
src/MiniPdf/Drawing/Text/FontFallbackResolver.cs | 98 +
src/MiniPdf/Drawing/Text/FontFamily.cs | 333 +
src/MiniPdf/Drawing/Text/FontSettings.cs | 80 +
src/MiniPdf/Drawing/Text/GenericFontFamilies.cs | 23 +
src/MiniPdf/Drawing/Text/GlyphRasterizer.cs | 100 +
src/MiniPdf/Drawing/Text/HotkeyPrefix.cs | 23 +
.../Drawing/Text/InstalledFontCollection.cs | 160 +
.../Drawing/Text/Native/LinuxFontDiscovery.cs | 153 +
.../Drawing/Text/Native/MacFontDiscovery.cs | 245 +
.../Drawing/Text/Native/NativeFontDiscovery.cs | 63 +
src/MiniPdf/Drawing/Text/Native/NativeFontInfo.cs | 24 +
.../Drawing/Text/Native/WindowsFontDiscovery.cs | 260 +
src/MiniPdf/Drawing/Text/PathArcLength.cs | 220 +
src/MiniPdf/Drawing/Text/PrivateFontCollection.cs | 44 +
src/MiniPdf/Drawing/Text/ResolvedRun.cs | 45 +
src/MiniPdf/Drawing/Text/RichTextOptions.cs | 51 +
src/MiniPdf/Drawing/Text/RichTextRun.cs | 55 +
src/MiniPdf/Drawing/Text/RunSegmenter.cs | 179 +
src/MiniPdf/Drawing/Text/StringAlignment.cs | 23 +
src/MiniPdf/Drawing/Text/StringDigitSubstitute.cs | 28 +
src/MiniPdf/Drawing/Text/StringFormat.cs | 133 +
src/MiniPdf/Drawing/Text/StringFormatFlags.cs | 56 +
src/MiniPdf/Drawing/Text/StringTrimming.cs | 38 +
src/MiniPdf/Drawing/Text/SystemFontScanner.cs | 119 +
src/MiniPdf/Drawing/Text/TextLayoutEngine.cs | 658 +
src/MiniPdf/Drawing/Text/TextLine.cs | 22 +
src/MiniPdf/Drawing/Text/TextOnPathLayout.cs | 147 +
src/MiniPdf/Drawing/Text/TextOnPathOptions.cs | 42 +
src/MiniPdf/Drawing/Text/TextOnPathOverflow.cs | 22 +
src/MiniPdf/Drawing/Text/TextRenderingHint.cs | 38 +
src/MiniPdf/Drawing/Text/TextRun.cs | 44 +
.../Drawing/Vector/Commands/ClearCommand.cs | 32 +
.../Drawing/Vector/Commands/ClipCommands.cs | 86 +
.../Drawing/Vector/Commands/ImageCommand.cs |...
python-v0.7.0
The Python package now renders through the Rust MiniPdf engine (0.7.0) via a PyO3 extension built by the maturin backend.
- PyO3 binding crate at minipdf-python/native exposing minipdf._native.
- minipdf 0.7.0: version aligned with the Rust core.
- Wheels for Linux, Windows, and macOS (x64 and arm64) plus an sdist.
- Pure Python renderers remain as a fallback when the extension is not importable.
MiniPdf Java 0.3.0
MiniPdf Java 0.3.0
This release publishes the Java Maven artifacts (io.github.mini-software:minipdf and minipdf-cli) at version 0.3.0 to Maven Central.
What's new since 0.2.1
- DOCX Latin layout parity with Microsoft 365 Word (PR #188): style heading colors, bullet markers, Word-calibrated wrap widths, contextual spacing, keepNext widow control, top-of-page baselines, and Word/LibreOffice-verified table geometry.
14_Thesis_Chapterbenchmark: 0.9856 -> 0.9932 with text similarity 1.0.
Changes in this release
- Bump Maven version 0.2.1 -> 0.3.0 (parent + module POMs, CLI
--version, README)
Coordinates
<dependency>
<groupId>io.github.mini-software</groupId>
<artifactId>minipdf</artifactId>
<version>0.3.0</version>
</dependency>CLI
mvn dependency:copy -Dartifact=io.github.mini-software:minipdf-cli:0.3.0 -DoutputDirectory=.
java -jar minipdf-cli-0.3.0.jar input.pptx -o output.pdfContributors
MiniPdf Java 0.2.1
MiniPdf Java 0.2.1 improves DOCX rendering parity and Java runtime compatibility.
- Preserve Vietnamese Unicode text with document font selection and improved layout parity.
- Honor OOXML line spacing, paragraph spacing, indentation, justification, and widow/orphan behavior.
- Support nested
PAGEfields in DOCX footers. - Include PDFBox 3.0.8 and JDK compatibility improvements inherited from #183.
v0.42.0
What's Changed
- Fix Rust XLSX rendering parity and prepare 0.6.0 by @shps951023 in #132
- Fix Rust XLSX centered VML rendering parity by @shps951023 in #133
- Fix Java XLSX rendering parity for centered VML documents by @shps951023 in #135
- Restore visual benchmark links in README tables by @shps951023 in #136
- Fix visual links to use canonical benchmark reports by @shps951023 in #137
- Split visual benchmark links by document format by @shps951023 in #138
- Release Java 0.1.2 under MiniSoftware namespace by @shps951023 in #139
- Share Rust system font registration with Node by @shps951023 in #140
- fix: keep oversized inline image on one page in DOCX rendering by @dks50217 in #134
- Fix Java XLSX Office rendering and prepare 0.1.3 by @shps951023 in #141
- Release Java 0.1.4 with improved XLSX O365 parity by @shps951023 in #143
- Fix unspecified XLSX paper size default by @shps951023 in #144
- Fix AI security scan transport failures by @shps951023 in #145
- Show deployed MiniPdf NuGet version by @shps951023 in #147
- Fix NuGet source repository links by @shps951023 in #148
New Contributors
Full Changelog: v0.41.1...v0.42.0
v0.41.1
What's Changed
- Fix VML style parsing on netstandard2.0 by @shps951023 in #131
Full Changelog: v0.41.0...v0.41.1
v0.41.0
What's Changed
- Add culture support for XLSX number formatting by @EnzoSam in #107
- Add community governance foundation by @shps951023 in #112
- Add native Rust PPTX conversion by @shps951023 in #113
- Add initial Java conversion engine by @shps951023 in #114
- Prepare Java 0.1.0 for Maven Central by @shps951023 in #115
- Add initial Python package for PyPI by @shps951023 in #117
- Add initial npm package by @shps951023 in #118
- Fix npm musl artifact builds by @shps951023 in #119
- Pin Rust for ARM64 musl npm builds by @shps951023 in #120
- Add initial Go package and release automation by @shps951023 in #121
- Fix npm publication and refresh multilingual contribution docs by @shps951023 in #122
- Include license in Go module by @shps951023 in #123
- Fix/npm publish and contribution docs by @shps951023 in #124
- Fix Rust DOCX VML and legacy table fidelity by @shps951023 in #125
- Fix Blazor converter stuck on Loading by @shps951023 in #126
- Add shared multi-language visual benchmarks by @shps951023 in #127
- Use tracked fixtures in Java release tests by @shps951023 in #128
- Fix legacy XLSX drawing and merged-cell rendering by @shps951023 in #130
New Contributors
Full Changelog: v0.40.0...v0.41.0
MiniPdf Rust v0.6.0
Improves Rust XLSX rendering parity for legacy VML/EMF previews, vertical page centering, stacked text, custom date formats, and merged-cell continuations. Adds scoped KaiTi fallback support and updates both minipdf and minipdf-cli to 0.6.0.
MiniPdf for Python 0.1.0
Install:
pip install minipdf
This release provides basic DOCX paragraph conversion, with path/bytes APIs and a CLI. Output is PDF 1.4 with page geometry, margins, page breaks, and basic bold, italic, and font-size support. OOXML safety validation is included.
Limitations: tables, images, embedded fonts, CJK fonts, RTL fonts, XLSX, and PPTX are not supported yet.