v1.24.0
firecrawl/pdf-inspectorv1.24.0Sep 23, 2026by abimaelmartell
Upgrading?
AI Summary
This release enhances text extraction by adding detailed color information to text items and expands the document metadata dictionary to include author, subject, keywords, and other fields. It also fixes decoding issues for PDF titles and improves text baseline spacing for headers.
Key Highlights
- Adds `fill_color`, `stroke_color`, and `render_mode` to `TextItem` for detailed text styling.
- Exports additional document metadata including Author, Subject, Keywords, Creator, Producer, and dates.
- Fixes PDF title decoding to correctly handle UTF-16LE and PDFDocEncoding.
- Enables extraction of text rendered using the `"` operator.
Breaking Changes
- Rust literals for `PdfProcessResult` and `PdfTypeResult` must now include the new metadata fields (`author`, `subject`, `keywords`, `creator`, `producer`, `creation_date`, `mod_date`).
- Rust literals for `TextItem` must now include the new paint fields (`fill_color`, `stroke_color`, `render_mode`).
New Features
- Extraction of `fill_color`, `stroke_color`, and `render_mode` from text runs.
- Extraction of Author, Subject, Keywords, Creator, Producer, CreationDate, and ModDate from document info.
- Support for decoding PDF titles in UTF-16LE and PDFDocEncoding.
- Support for extracting text rendered with the `"` operator.
Full Release Notes
Changes since 1.23.0: - Report the paint each text run was shown with: `TextItem` gains `fill_color` and `stroke_color` (8-bit sRGB, read from DeviceRGB, DeviceGray, DeviceCMYK, ICCBased by component count and Indexed palettes; `None` for Separation, DeviceN, Pattern and CIE-based spaces) and `render_mode` (the `Tr` mode, so invisible text and clipping-only text can be told apart). Extraction and markdown are unchanged (#579). - Read the document information dictionary's `/Author`, `/Subject`, `/Keywords`, `/Creator`, `/Producer`, `/CreationDate` and `/ModDate` beside `/Title`, each decoded as a PDF text string (#579). - Decode the document `/Title` as a PDF text string: titles in PDFDocEncoding no longer read with U+FFFD, titles in UTF-16LE no longer read as mojibake, and titles given by reference are read (#579). - Extract text a page shows with the `"` operator, which the page parser skipped together with the spacing and line move it makes (#579). - Take an ActualText span's weight from the paint of its first painted glyph rather than from the paint in force at the span's end (#579). - Keep two lines of small type apart when their baselines lie less than 5 pt apart: a stacked table header at 4.7 pt on a 4.5 pt pitch no longer comes out as words zipped from both lines, and type of 8⅓ pt and above groups exactly as before (#580). API: `TextItem::fill_color`, `stroke_color` and `render_mode` (Node `fillColor`, `strokeColor`, `renderMode`; Python `fill_color`, `stroke_color`, `render_mode`; the `pdf2md --items-json` fields), and the `PdfProcessResult` / `PdfTypeResult` fields `author`, `subject`, `keywords`, `creator`, `producer`, `creation_date` and `mod_date` (Node and WebAssembly in camelCase, Python as attributes, and the `pdf2md --json` / `detect-pdf --json` members). Rust literals of these types must include the new fields. Release preparation: #582. [Full changelog](https://github.com/firecrawl/pdf-inspector/compare/v1.23.0...v1.24.0)
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one