v1.25.1

weave-os/routerv1.25.1Sep 28, 2026by abimaelmartell

Upgrading?

AI Summary

Addresses critical font decoding issues to prevent text corruption, specifically improving how simple fonts and Type1 fonts are read when ToUnicode CMaps are declared.

Key Highlights

  • Fixes reading of two-byte strings in simple fonts (e.g., 'Income Statement' no longer reads as 'Iometatent').
  • Reads Type1 fonts via their embedded program to support TeX ligatures and special characters.
  • Implements a more robust repair logic for ToUnicode CMaps to prevent short common words from being misread.

Full Release Notes

Changes since 1.25.0:

- Read simple fonts (Type1, TrueType, Type3) one byte per code when their ToUnicode CMap declares a two-byte codespace: text shown as a kerned run of short strings no longer loses every two-byte string (`Income Statement` read as `Iometatent`). The stale-CMap check for Type1 fonts judges such a CMap too, and the page detector counts such a font's text byte by byte (#595).
- Read a Type1 font whose `/Encoding` names no base encoding through the built-in encoding of its embedded program (PDF 32000-1:2008, Table 114): TeX's fonts read their ligatures (`efficiency`, was `eciency`), curly quotes, dashes and math symbols. A code the program leaves at `.notdef` reads as nothing, the word space excepted, and the base-14 width fallback measures such fonts as they read (#596).
- Take a repaired ToUnicode CMap for a string of one or two glyphs only on evidence beyond short common words: `engagement` no longer reads as `engageaent`, `AND` as `ANa` or `Three` as `ThaTe` (#597).

No API changes.

Release preparation: #604.

[Full changelog](https://github.com/firecrawl/pdf-inspector/compare/v1.25.0...v1.25.1)

Related Repositories