v0.29.0
What's New in v0.29.0
DOCX rendering fidelity release: substantial improvements to OOXML indent cascade, list label placement, CJK metrics, paragraph spacing, theme font resolution, and shape rendering. Improves Chinese/Japanese/Korean document fidelity and resolves several long-standing layout regressions.
Highlights
- OOXML indent cascade -- correct inheritance from styles per OOXML 17.3.1.12 and 17.9.3, with auto-tab handling for inherited list paragraphs.
- List label placement -- gate auto-tab snap on
w:suff; correct CJK numbered-list label placement; preferw:lefttwips overw:leftCharswhen both are present. - CJK grid metrics -- recognize Chinese font aliases; include paragraph-mark font size in cell line height; skip empty/tab-only runs from line-height max.
- Paragraph spacing -- apply explicit
pStyleSpacingBeforeat top of page (narrowed to first paragraph); apply explicit SpacingBefore for first cell paragraph. - Theme & font resolution -- resolve theme Latin font for runs without explicit
rFonts; substitute Avenir LT Pro to Times New Roman for serif embedding. - Shapes & anchors -- render explicit-fill shapes when stroke is also present; handle
ObjectAnchorhost paragraph (anchor image + shape). - Chinese chromatography report fidelity -- targeted improvements driven by real-world test corpus.
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 |
NuGet package MiniPdf is published automatically via the NuGet workflow.
Changes since v0.28.0
- dab2898 fix(docx): improve Chinese chromatography report fidelity
- fbe2fa5 fix(docx): apply OOXML 17.9.3 ind cascade for numbered paragraphs
- 0650b65 fix(docx): correct CJK numbered-list label placement
- 27f7e29 fix(docx): render explicit-fill shapes when stroke is also present
- 6267eec fix(docx): resolve theme Latin font for runs without explicit rFonts
- b97808e fix(docx): narrow SpacingBefore-explicit-at-top-of-page to first paragraph only
- b3fffea fix(docx): apply explicit pStyle SpacingBefore at top of page
- a86535e DOCX: prefer w:left twips over w:leftChars when both present
- 96213f5 DOCX: apply explicit pStyle SpacingBefore for first cell paragraph
- c48fc2b fix(docx): substitute Avenir LT Pro to Times New Roman to embed serif
- 6497e07 fix(docx): handle ObjectAnchor host paragraph (anchor image + shape)
- 6017cb1 fix(docx): skip empty/tab-only runs in paragraph line-height max-Fs
- 9ec77ef fix(docx): include paragraph mark font size in cell line height
- 2d0bd43 fix(docx): recognize Chinese font aliases for CJK grid metrics
- c933d02 test(nthu): regenerate report artifacts to reflect current source
- 04a5218 fix(docx): honor OOXML w:suff to gate list label auto-tab snap
- c620d18 fix(docx): correct OOXML indent cascade and apply auto-tab for inherited list paragraphs
- 39b91c7 DocxReader: inherit paragraph indent from styles (OOXML 17.3.1.12)
389 files changed, 3089 insertions(+), 20324 deletions(-)
Core source changes:
src/MiniPdf/DocxReader.cs(+/-693 lines)src/MiniPdf/DocxToPdfConverter.cs(+/-253 lines)src/MiniPdf/PdfWriter.cs(+/-32 lines)
Remaining diff is benchmark report regeneration (reports_docx/ images and comparison data).
Full Changelog: v0.28.0...v0.29.0