v1.23.0
imbhargav5/open-recorderv1.23.0Sep 22, 2026by abimaelmartell
Upgrading?
AI Summary
Focuses on repairing text layers by handling malformed forms, fixing right-to-left reading order, and improving accent composition.
Key Highlights
- Handles malformed Form XObjects by saturating large numerals.
- Fixes right-to-left reading order for visual storage.
- Composes spacing accents with the letter they are painted over.
- New `invisible_text_layer` OCR reason for pages covered by images.
- Built-in CMaps compiled into the binary.
New Features
- CMap gap reporting API
- Invisible text layer OCR reason
Full Release Notes
Changes since 1.22.1: - Read a Form XObject whose `/BBox` numerals are too large for any parser: such numerals are saturated in place before the document is read, so the form's text is extracted and the OCR pipeline renders it instead of an empty page (#560). - Read right-to-left runs shown in reading order forwards: a visible run of right-to-left letters painted forwards now votes for visual storage, so pages that came out word-mirrored read correctly; the logical-order reading is kept for invisible text layers (#561). - Read a re-encoded simple font by its `/Differences` names when it kept a stale ToUnicode CMap, and keep one glyph's characters together through the visual-order read-back (#562). - Compose a detached spacing accent with the letter it is painted over instead of leaving a stray accent a word on (#563). - Treat a return from a zero-advance dependent sign placed behind the pen as no word gap, so scripts that attach signs by stepping the pen back keep their words whole (#564). - Classify a page whose text layer is drawn invisibly under a covering image as a scan with the OCR reason `invisible_text_layer`, following the text rendering mode, the transformation, the graphics state stack and image draws through form content within a per-page budget (#566). - Interpolate single-glyph gaps in a ToUnicode CMap when the neighbouring codes make the reading unambiguous, mark the rest as U+FFFD instead of dropping them, and report each font's coverage (#568). - A ToUnicode entry whose destination is a control character is a miss, not text: the marker replaces it and the font program, the declared encoding or a blank glyph's advance recovers the letter where it can (#567). - `pdf2md` and `detect-pdf` take the PDF path as the first non-option argument, so flags may come before or after it, and a missing input names the path that could not be opened; the built-in CMaps are compiled into the binary instead of being read from the crate checkout at run time, so `cargo install` binaries and published wheels find them (`PDF_INSPECTOR_BCMAPS_DIR` still overrides) (#570). API: `PdfProcessResult::cmap_gaps` (Node `cmapGaps`, Python `cmap_gaps`, WebAssembly `cmapGaps`, and the `pdf2md --json` / `detect-pdf --analyze --json` field) lists, per font with gaps among the two-byte codes shown, the codes shown, interpolated and left unmapped (#568). The detector's `invisible_text_layer` OCR reason is new (#566). Release preparation: #571. [Full changelog](https://github.com/firecrawl/pdf-inspector/compare/v1.22.1...v1.23.0)
Related Repositories
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.
Lightning-Fast, On-Device, Multilingual TTS — running natively via ONNX.
Fastest and only macOS Dictation app with on-device STT and custom trained AI enhancement model. Windows, iOS testflight! Android, Linux waitlist open! A local Wispr Flow alternative. Follow https://x.com/fluidvoiceapp for more
The best native proxy client for iOS, iPadOS, macOS, and tvOS.
High performance distributed S3 compatible object storage focused on speed and designed to be an open alternative to MinIO and RustFS.