github yfedoseev/pdf_oxide v0.2.6
v0.2.6 | CJK Support & Structure Tree Enhancements

latest releases: v0.3.76, go/v0.3.76, v0.3.75...
6 months ago

v0.2.6 Release

This release adds comprehensive CJK (Chinese, Japanese, Korean) language support and enhances structure tree handling for Tagged PDFs.

🌍 CJK Language Support

  • Predefined CMap support for CJK fonts (PDF Spec Section 9.7.5.2)
    • Adobe-GB1 (Simplified Chinese) - ~500 common character mappings
    • Adobe-Japan1 (Japanese) - Hiragana, Katakana, Kanji mappings
    • Adobe-CNS1 (Traditional Chinese) - Bopomofo and CJK mappings
    • Adobe-Korea1 (Korean) - Hangul and Hanja mappings
    • Fallback identity mapping for common Unicode ranges
  • Type 0 /W array parsing for CIDFont glyph widths
    • Proper spacing for CJK text using CIDFont width specifications

🏷️ Structure Tree Enhancements

  • TagSuspect/MarkInfo support (ISO 32000-1 Section 14.7.1)
    • Parse MarkInfo dictionary from document catalog
    • marked, suspects, user_properties fields
    • Automatic fallback to geometric ordering when structure tree is marked suspect
  • Word Break /WB structure element (Section 14.8.4.4)
    • Support for explicit word boundaries in CJK text
    • Word break markers emitted during structure tree traversal
  • Abbreviation expansion /E support (Section 14.9.5)
    • Parse /E entry from marked content properties
    • expansion field on StructElem for abbreviations

✨ New Features

  • Object reference resolution utility
    • PdfDocument::resolve_references() for recursive reference handling
    • Simplifies working with complex PDF structures
  • ActualText verification tests - Comprehensive test coverage for Section 14.9.4
  • Enhanced artifact filtering with subtype support
    • ArtifactType::Pagination with Header, Footer, Watermark, PageNumber
    • ArtifactType::Layout and ArtifactType::Background classification

🐛 Bug Fixes

  • Soft hyphen handling (U+00AD) - Correctly treated as valid continuation hyphen for word reconstruction

✅ Verification

  • CJK text extraction tested on Chinese, Japanese, Korean documents
  • Structure tree handling validated
  • Word break detection verified
  • All tests pass

📥 Installation

Rust (crates.io)

cargo add pdf_oxide

Python (PyPI)

pip install pdf_oxide

Release Date: January 9, 2026
Branch: main
Tag: v0.2.6

Don't miss a new pdf_oxide release

NewReleases is sending notifications on new releases.