Skip to content

build(deps): bump unpdf from 0.21.0 to 0.22.0 - #117

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/unpdf-0.22.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/unpdf-0.22.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 1, 2026

Copy link
Copy Markdown
Contributor

Bumps unpdf from 0.21.0 to 0.22.0.

Release notes

Sourced from unpdf's releases.

Release v0.22.0

Full Changelog: iyulab/unpdf@v0.21.0...v0.22.0

Changelog

Sourced from unpdf's changelog.

0.22.0 — 2026-09-28

Changed

  • Breaking — the CLI's default output directory now carries the input's extension and sits next to the input: document.pdf converts into document_pdf_output/ instead of document_output/. With the stem alone, two inputs differing only in extension (report.pdf beside a report.docx converted by a sibling tool) shared one directory and the second conversion silently overwrote the first one's extract.md and images. The extension is lowercased, since report.PDF and report.pdf are the same file where case is ignored. Pass -o to choose the directory explicitly, as before. The directory also moves from the current working directory to beside the input, matching the other two extractors in this family.

Fixed

Pages whose content stream nests coordinate transforms, and pages with figures beside the text, lost text outright. Browser-printed PDFs hit both on nearly every page.

  • Nested cm transforms were concatenated in the wrong order. The new matrix must be applied before the current one (cm × CTM); the reverse agrees only while the CTM is the identity or a pure scale. A page that opens with a flipped, scaled CTM and then translates into a tall canvas placed every run far off the page, and a run holding only a number was then removed as a margin page number — table volumes, citation numbers and the digits inside headings (C3) went missing. Text and ruling lines share the one corrected transform.
  • Unrelated ruling lines were merged into one page-wide table. Lattice detection treated every horizontal and vertical line on a page as a single grid, so a figure frame and a separator rule far below it spanned all the text between them, and every run whose left edge fell inside that span became a table cell. Headings lost their first or last words (# oncept) and lines beside figures were cut and reassembled as spurious tables. Grids are now inferred per cluster of lines that touch, and a border drawn twice a couple of points apart (a background box and its inset frame) snaps to one line at a 3 pt tolerance instead of producing a sliver column.
  • Words drawn one glyph at a time were split after wide letters. Glyph advance widths were never read, so where one glyph ended was a per-character guess; after a wide glyph (m, W) the guess fell short and the gap read as a word break — Carbon concentrating m echanism s, W arburg, table cells spelled out as S t a g e. The font's declared widths are now used (/Widths and /MissingWidth for simple fonts, /W and /DW for Identity-H composite fonts, /FontMatrix for Type 3), and the text state follows the specification: showing text advances the text matrix, line moves are relative to the start of the line, and Tc, Tw, Tz, TL, TD, ' and " take effect and are saved and restored with the graphics state. Runs whose widths are measured are joined when they abut instead of by estimate. Fonts without declared widths keep the previous estimate. T* without a TL now moves by the specified default leading of 0 rather than an assumed 12.
  • A right-aligned run was glued to the text before it. A TJ that opens with a large offset — how TeX sets \hfill, and how many producers place a right-aligned date or a tab stop — draws its first glyph far from the text origin, but the run was placed at the origin, right where the previous run ended: **University of Somewhere***October 2022*. Offsets before a TJ's first string now move where the run starts. They depend only on

... (truncated)

Commits
  • 77030d6 chore: release 0.22.0
  • a332190 Add a real-document fidelity fixture
  • e5d21ad Start a TJ run where its first glyph is drawn
  • 6f79f81 Name the default output directory after the input's extension too
  • e829c5c Detect tables from coalesced runs and require whitespace channels
  • e6331ad Keep subscripts and superscripts on the line they belong to
  • a3f8a9e Advance text by the glyph widths the font declares
  • 95df203 Infer lattice grids per cluster of touching lines
  • fd061d5 Fix nested cm transforms being concatenated in the wrong order
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [unpdf](https://github.com/iyulab/unpdf) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/iyulab/unpdf/releases)
- [Changelog](https://github.com/iyulab/unpdf/blob/main/CHANGELOG.md)
- [Commits](iyulab/unpdf@v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: unpdf
  dependency-version: 0.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Oct 1, 2026
@harehare harehare closed this Oct 3, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 3, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/cargo/unpdf-0.22.0 branch October 3, 2026 15:11
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.

1 participant