Skip to content

chore(deps): bump printpdf from 0.7.0 to 0.10.1 in /src-tauri - #63

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/src-tauri/printpdf-0.10.0
Open

chore(deps): bump printpdf from 0.7.0 to 0.10.1 in /src-tauri#63
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/src-tauri/printpdf-0.10.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 11, 2026

Copy link
Copy Markdown
Contributor

Bumps printpdf from 0.7.0 to 0.10.1.

Changelog

Sourced from printpdf's changelog.

0.10.1 - font embedding hotfix

If you are on 0.10.0, upgrade. In 0.10.0 every external font embedded as an empty /FontFile2: readers reported "Cannot extract the embedded font", pdffonts reported "Embedded font file may be invalid", and no glyph rendered. A PDF that should have been 165 KB came out at 2.7 KB. Nothing warned and nothing failed.

0.10.0 cannot be repaired by releasing a fixed azul-layout. Cargo reads azul-layout = "0.0.9" as ^0.0.9 := >=0.0.9, <0.0.10, so for 0.0.z versions only 0.0.9 ever satisfies it - 0.10.0 is permanently pinned to the broken dependency. The fix had to come from printpdf, and it does: printpdf now retains font bytes itself and no longer depends on azul's retention policy at all.

Fixed

  • External fonts embed as an empty /FontFile2. azul_layout::ParsedFont::from_bytes does not retain the source bytes (a deliberate perf change - layout and rasterization never read them, and retaining them duplicated a 4.27 MiB .ttc once per face). printpdf read them straight off the struct and .unwrap_or_default()'d the None into an empty Vec. printpdf::ParsedFont is now its own type, which attaches the source bytes explicitly, so embedding is correct against any azul-layout.
  • Subset fonts had no .notdef. allsorts requires glyph 0 to be present and first in the subset glyph list; printpdf passed only the used glyphs, so the first real glyph was renumbered into slot 0. Subsetting "Roboto" produced R→0, b→1, o→2, t→3, and the R was drawn as .notdef.
  • CFF/OpenType fonts were mislabelled. An OTTO font was written as CIDFontType2 + /FontFile2, both of which mean "TrueType glyf outlines". The descendant subtype is now taken from the sfnt magic of the program actually being embedded, and a full OTTO sfnt is written to /FontFile3 as /Subtype /OpenType.
  • Built-in fonts emitted UTF-8 into a WinAnsiEncoding stream (#273). "Grüße aus Köln" extracted as "Grüße aus Köln" - the text was not copy-able or searchable. printpdf now owns the WinAnsi encoding table.
  • The ' and " operators ignored the selected font, emitting raw UTF-8 - wrong for a WinAnsi built-in font and for an Identity-H external font, where the bytes must be glyph ids. The used-glyph collector also ignored them, so a page that drew text only via '/" registered no glyphs, its font was skipped as unused, and the text disappeared from the PDF entirely.
  • A font that cannot be embedded now raises a PdfWarnMsg::error and omits /FontFile rather than writing a zero-length one. A missing font is a legal font that readers substitute for; an empty font program is a corrupt one they reject.

Changed

  • printpdf::ParsedFont is now a printpdf type (a newtype over azul_layout::ParsedFont, with Deref, so the existing API is unchanged). It guarantees the source bytes are retained. ParsedFont::from_bytes, field access and method calls all work as before; into_inner() / as_azul() reach the underlying azul face, and printpdf::font::AzulParsedFont re-exports it.
  • text_layout now pulls in rust-fontconfig, which is needed to name the type that carries the retained bytes.

... (truncated)

Commits
  • 4bad56e chore(release): printpdf 0.10.1 — font embedding hotfix
  • b89d4dc fix(test): gate poppler tests on a real poppler, and add 0.10.1 changelog
  • 820f990 fix(font): five font-embedding bugs, incl. the 0.10.0 regression (#277)
  • 3c5b05d chore(release): printpdf 0.10.0 (current ParsedFont API, kuchiki-free html)
  • ed4a768 deps: require rust-fontconfig 4.4.4 (in-memory fonts on empty caches)
  • 99dafe0 chore: drop unused kuchiki dependency from the html feature
  • 05b2077 fix(parse): read ExtGState CA->stroke, ca->fill (was swapped)
  • 3b838bd test: un-ignore custom-font roundtrip
  • 6d3c352 test+ci: gate img tests, ignore subset regen-tool, wasm-safe feature check
  • cd5af16 chore(deps): point azul [patch] at github mobile-ios-android branch
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Jul 11, 2026
Bumps [printpdf](https://github.com/fschutt/printpdf) from 0.7.0 to 0.10.1.
- [Release notes](https://github.com/fschutt/printpdf/releases)
- [Changelog](https://github.com/fschutt/printpdf/blob/master/CHANGELOG.md)
- [Commits](fschutt/printpdf@0.7.0...v0.10.1)

---
updated-dependencies:
- dependency-name: printpdf
  dependency-version: 0.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title chore(deps): bump printpdf from 0.7.0 to 0.10.0 in /src-tauri chore(deps): bump printpdf from 0.7.0 to 0.10.1 in /src-tauri Aug 7, 2026
@dependabot
dependabot Bot force-pushed the dependabot/cargo/src-tauri/printpdf-0.10.0 branch from 732d913 to 25c518d Compare August 7, 2026 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants