Skip to content

fix(deps): update module github.com/go-pdfkit/ops to v0.38.0 - #36

Merged
tannevaled merged 1 commit into
mainfrom
renovate/deps
Nov 12, 2026
Merged

tannevaled merged 1 commit into
mainfrom
renovate/deps

Conversation

@tannevaled

@tannevaled tannevaled commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/go-pdfkit/ops v0.25.0 → v0.38.0 age confidence

Release Notes

go-pdfkit/ops (github.com/go-pdfkit/ops)

v0.38.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.37.0...v0.38.0

v0.37.0

Compare Source

Say what changed between two versions of a document

ops.Compare and pdfops compare.

pdfops compare draft1.pdf draft2.pdf
- -> 2    page added
2 -> 3    text removed       zeta
2 -> 3    text added         theta
2 of 3 page(s) changed

⛔ The pages are paired by what they say, not by their numbers. A page
inserted in the middle moves nothing after it: the pages that follow are still
paired with the pages they came from, and the insertion is one page added.
A pair must share half its words, or it is one page removed and another
added — without that floor a replaced chapter reads as a rewrite of the one
before it.

Inside a pair the diff is Myers (An O(ND) Difference Algorithm and Its
Variations
, Algorithmica 1 (1986) 251–266) over words, with the words that
changed together reported together: "quick brown fox" → "slow grey mole" is
two changes, not six. Pictures are told apart by a hash of their samples, so
a swapped logo of the same size is a change; annotations by their subtype and
their text.

Bounded on both axes, because the input is two files and a file can say
anything: the alignment gives up past four million page pairs and pairs the
pages where they stand, and the diff gives up past two thousand differences and
reports both pages whole. A reference that points at itself stops the
comparison with the page named.

⛔ compare exits 0 whether or not the documents differ, unlike diff: in
this command an exit of 1 means the work could not be done, and a document that
changed is the work being done. The answer is in the last line, in words.

Closes the Compare PDFs row of the BentoPDF gap table for everything a
library can answer; side by side and overlay are the workbench's.

🤖 Generated with Claude Code

v0.36.0

Compare Source

Turn a page by any angle

Doc.Turn and pdfops turn: the arbitrary-angle half that Rotate refuses.
Rotate writes a number on the page — /Rotate, a multiple of ninety — and
Turn rewrites the page onto a sheet of its own.

pdfops turn -by 30 tilted.pdf turned.pdf
pdfops turn -pages 2,5-7 -by -1.5 scan.pdf nudged.pdf

⛔ The paper grows and nothing is cut off, which is the whole difference
from Deskew: a deskew is a correction of a fraction of a degree on a page
whose text sits well inside its margins, so it keeps the paper it was given.
The sheet is the turned page's bounding box — w·|cos θ| + h·|sin θ| across,
w·|sin θ| + h·|cos θ| down — and the page is centred on it, checked by
mapping all four corners for angles from −350° to 350°: each must land inside
the sheet, and each edge must be touched.

An angle that is a multiple of ninety goes through /Rotate and nothing else
happens: no transformation, no new content stream, a page whose text was
selectable stays selectable.

⛔ Positive is clockwise, as ISO 32000-1 Table 30 and Doc.Rotate already
mean it. The tool this is ported from, BentoPDF's rotate-custom, documents the
same thing and then does the opposite for any angle that is not a multiple of
ninety — its two arms turn opposite ways, and the seam is at exactly 90°. The
gate here is a render across that seam: a mark at the top of a square page must
come back at the right-hand edge after +90°, measured at 89°, 90° and 91°.

Closes the Rotate by Custom Degrees row of the BentoPDF gap table.

🤖 Generated with Claude Code

v0.35.0

Compare Source

A redaction destroys the pixels under it

ISO 32000-1 §12.5.6.23: "If a portion of an image is contained in a redaction
region, that portion of the image data shall be destroyed; clipping or image
masks shall not be used to hide that data."

Redact used to refuse every region a picture was drawn across — which, for a
scanned page, is every region there is. It now overwrites the samples under the
region and writes the picture back.

It does that to a picture whose samples are plain (already unfiltered by the
reader), eight bits a component, DeviceGray or DeviceRGB, drawn upright
and drawn once. Everything else is still refused by its own name, with
its reason, at Redact rather than at the write: a /Filter (a JPEG would have
to be decoded and re-encoded), a turned or skewed placement, a picture drawn
twice, an inline image, /ImageMask, /SMask, /Mask, /Decode, samples that
are not 8 bits, and any colour space outside those two — a zero sample in an
/Indexed space is the palette's first colour, which may be white.

⛔ The page's /Resources are rebuilt, not copied, or the original picture
would stay in the file beside the blanked one, referenced by nothing and holding
every pixel the redaction promised to remove — defect #​74 one object along. The
test walks every object of the written file and decodes it.

⛔ The sample grid counts down while the page counts up. Row zero is the
picture's top row and v runs from its bottom edge; reading one for the other
blanks the mirror image of what was asked for. A region ending part way into a
sample destroys all of it.

Requires go-pdfkit/extract v0.11.0, whose Image.Matrix is what the upright
test reads. Closes #​80 for the plain case; the JPEG half stays open there.

🤖 Generated with Claude Code

v0.34.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.33.0...v0.34.0

v0.33.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.32.0...v0.33.0

v0.32.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.31.0...v0.32.0

v0.31.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.30.0...v0.31.0

v0.30.0

Compare Source

What's Changed

  • fix(write): a redacted document kept every removed word in an orphan object by @​tannevaled in #​73

Full Changelog: go-pdfkit/ops@v0.29.0...v0.30.0

v0.29.0

Compare Source

What's Changed

  • feat(annots): sticky notes and free text, both with the appearance that makes them visible by @​tannevaled in #​72

Full Changelog: go-pdfkit/ops@v0.28.1...v0.29.0

v0.28.1

Compare Source

What's Changed

  • fix(redact): see the annotations this document has added, not only the file's by @​tannevaled in #​69

Full Changelog: go-pdfkit/ops@v0.28.0...v0.28.1

v0.28.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.27.0...v0.28.0

v0.27.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.26.0...v0.27.0

v0.26.0

Compare Source

What's Changed

Full Changelog: go-pdfkit/ops@v0.25.0...v0.26.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@tannevaled

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
github.com/go-opentype/opentype v0.16.1 -> v0.17.0

@tannevaled tannevaled changed the title fix(deps): update module github.com/go-pdfkit/ops to v0.28.1 fix(deps): update module github.com/go-pdfkit/ops to v0.31.0 Nov 9, 2026
@tannevaled tannevaled changed the title fix(deps): update module github.com/go-pdfkit/ops to v0.31.0 fix(deps): update module github.com/go-pdfkit/ops to v0.37.0 Nov 10, 2026
@tannevaled tannevaled changed the title fix(deps): update module github.com/go-pdfkit/ops to v0.37.0 fix(deps): update module github.com/go-pdfkit/ops to v0.38.0 Nov 11, 2026
@tannevaled
tannevaled merged commit 35af257 into main Nov 12, 2026
1 check passed
@tannevaled
tannevaled deleted the renovate/deps branch November 12, 2026 08:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant