Skip to content

v0.29.0

Choose a tag to compare

@openaitx-system openaitx-system released this 30 Apr 06:34

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; prefer w:left twips over w:leftChars when 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 pStyle SpacingBefore at 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 ObjectAnchor host 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