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_oxidePython (PyPI)
pip install pdf_oxideRelease Date: January 7, 2026
Branch: main
Tag: v0.2.3
Closes: #5, #6, #7