v1.22.0
facebookresearch/sam-audiov1.22.0Sep 20, 2026by abimaelmartell
Upgrading?
AI Summary
Adds right-to-left text support, symbolic font decoding, and tracked display text handling, along with new font metadata fields like bold_source and fixed_pitch.
Key Highlights
- Implements Unicode Bidirectional Algorithm for Hebrew and Arabic text
- Decodes Symbol and ZapfDingbats encodings
- Adds bold_source and fixed_pitch fields to text items
- Improves handling of tracked display text with letter spacing
Breaking Changes
- Rust migration: TextItem literals require new bold_source and fixed_pitch fields
- Default is_bold behavior now reads weight names (e.g., Demi, Semibold)
New Features
- Right-to-left text reading
- Symbol font decoding
- Tracked display text support
- Font metadata improvements
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
public-apis/public-apis★ 491,218
A collective list of free APIs
NousResearch/hermes-agent★ 256,089
The agent that grows with you
yt-dlp/yt-dlp★ 200,267
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,563
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,699
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.