github yfedoseev/pdf_oxide v0.2.3
v0.2.3 | BT/ET Matrix Reset & Text Processing

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

v0.2.3 Release

This release fixes critical text positioning bugs and adds intelligent text processing for better extraction quality.

🐛 Bug Fixes

  • BT/ET matrix reset - Per PDF spec Section 9.4.1 (PR #10 by @drahnr)
    • Text matrices weren't being reset between text blocks, causing positions to accumulate
    • Now correctly resets transformation matrix at text block boundaries
  • Geometric spacing detection - Markdown converter now uses proper spacing analysis (#5)
  • Verbose logging - Changed info-level logs to trace (non-blocking improvements) (#7)

✨ New Features

  • Intelligent Text Processing - apply_intelligent_text_processing() method
    • Ligature expansion
    • Hyphenation reconstruction
    • OCR cleanup
    • Now properly exported and documented

🏆 Community Contributors

🥇 @drahnr - PR #10 fixing the BT/ET matrix reset issue! Subtle PDF spec compliance bug (Section 9.4.1) where text matrices weren't being reset between text blocks, causing positions to accumulate and become unusable. Your fix restored correct text positioning for all PDFs. 💪📐

🔬 @JanIvarMoldekleiv - Detailed bug report (#5) about missing spaces and lost table structure! Your analysis even identified the root cause in the code - the markdown converter wasn't using geometric spacing analysis. 🕵️‍♂️

🎯 @Borderliner - Two important catches! Issue #6 revealed that apply_intelligent_text_processing() was documented but not available, and #7 caught our overly verbose INFO-level logging. Both fixed immediately! 🔧

✅ Verification

  • All text extraction tests pass
  • Geometric spacing detection validated
  • Logging levels verified

📥 Installation

Rust (crates.io)

cargo add pdf_oxide

Python (PyPI)

pip install pdf_oxide

Release Date: January 7, 2026
Branch: main
Tag: v0.2.3
Closes: #5, #6, #7

Don't miss a new pdf_oxide release

NewReleases is sending notifications on new releases.