v1.22.0
bilawalsidhu/gods-eye-viewv1.22.0Sep 20, 2026by abimaelmartell
Upgrading?
AI Summary
Adds robust support for right-to-left text, symbolic fonts, tracked titles, and font metadata including boldness and pitch.
Key Highlights
- Implements Unicode Bidirectional Algorithm for Hebrew and Arabic text to render in reading order.
- Adds `bold_source` and `fixed_pitch` fields to text items and `bold_weight_threshold` to options.
- Decodes Symbol and ZapfDingbats built-in encodings so bullets and operators read correctly.
- Fixes tracked display text to keep words whole when letter spacing is applied.
- Widens zero-area Form XObjects at load to ensure text extraction.
Breaking Changes
- Rust migration required: TextItem literals must include the new `bold_source` and `fixed_pitch` fields.
New Features
- Right-to-left text rendering support
- Symbolic font decoding
- Tracked title spacing fix
- Font metadata (boldness, fixed pitch)
Full Release Notes
Changes since 1.21.0: - Read right-to-left lines back through the Unicode Bidirectional Algorithm: Hebrew and Arabic text stored in visual order comes out in reading order even when the line holds numbers, Latin phrases or punctuation; glyph-by-glyph positioned words cluster into words by the line's own gaps; presentation forms normalize to their letters once the text is in reading order (#552). - Decode simple fonts through their `/BaseEncoding`, the Symbol and ZapfDingbats built-in encodings and their glyph names — Adobe Glyph List, `uniXXXX` and numbered `gNN`/`cidNN` names resolved against the embedded program — so symbol bullets, arrows and math operators read as the glyphs they are. A code the `/Differences` array names but cannot map reads as nothing, and a Type3 font's glyph-procedure names are never taken for glyph indexes (#553). - Keep tracked display text whole when its letter spacing is written as `TJ` offsets, so a spaced-out title reads as words rather than one letter per word (#548). - Add `bold_source` (where `is_bold` came from) and `fixed_pitch` to text items, and `bold_weight_threshold` to the positioned-text options; with `bold_from_weight` adjacent runs merge by the bold verdict; `is_bold_font` recognises Demi, Semibold, Ultra, Heavy and Black faces and the foundry abbreviations (#547). - Widen the zero-area `/BBox` of Form XObjects at load so their text is extracted and the page renders; Rust gains `widen_degenerate_form_bboxes_mem(bytes)` for the repaired document (#550). - Judge a CID-keyed font page's text decoded before calling it vector text, and bound Form XObject content inflation (#551). - Regression fixtures for the boxes of text drawn with a reflected matrix (#549). `bold_from_weight` and `bold_weight_threshold` stay opt-in; the default `is_bold` now also reads the weight names above as bold. **Rust migration:** `TextItem` literals need the new `bold_source` and `fixed_pitch` fields. Release preparation: #556. [Full changelog](https://github.com/firecrawl/pdf-inspector/compare/v1.21.0...v1.22.0)
Related Repositories
affaan-m/ECC★ 285,983
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
react/react★ 251,629
The library for web and native user interfaces.
nodejs/node★ 122,531
Node.js JavaScript runtime ✨🐢🚀✨
Leonxlnx/taste-skill★ 100,779
Agent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
louislam/uptime-kuma★ 92,738
A fancy self-hosted monitoring tool