Open
Conversation
folknor
added a commit
to folknor/pdf-lib
that referenced
this pull request
Jan 29, 2026
Add PDFPage.translate(x, y) that moves both page content AND annotations together, keeping them aligned. Previously, translateContent() only moved content, leaving annotations (comments, highlights, links, etc.) misaligned. New methods: - translate(x, y) - moves content and annotations together - translateAnnotations(x, y) - moves only annotations Also adds PDFArray.translatePDFNumbers() helper method. Fixes Hopding/pdf-lib#1379 Coded by an LLM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What?
I added one [translate] function to the PDFPage class . the method can translate annotations and content of the PDF's page . not only then content .
Why?
In many pdf files, annotations and text content is followed together, the library currently only provides the translateContent method, if you use the method will cause misalignment of annotations and text . also , there are no methods in the library for moving annotations
How?
In my method, I first find all the annotations and then trnaslate the annotations by adding or subtracting numbers from the location information in the annotations
Testing?
I created a pdf file, marked the annotation on top of a word, and then use my method [ translate(20,20) ] , and then check if the annotation deviates from the word . Result: No offset . then repeat doing this test by using different annotation type
New Dependencies?
no
Screenshots
the yellow line is annotation
Suggested Reading?
Yes , but the url(https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf) is 404
Anything Else?
Checklist