[
https://issues.apache.org/jira/browse/PDFBOX-5559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17679599#comment-17679599
]
Tilman Hausherr commented on PDFBOX-5559:
-----------------------------------------
The file [^sample_modified.pdf] wasn't created by PDFBox, it is linearized.
What I meant is the file after your modifications but before qpdf. My guess is
that it has the same problem, i.e. the same page object. This isn't illegal,
but can be risky because a modification in one page would mean the other is
also modified. It makes no sense. Change your PDF creating code so that "new
PDPage()" is run twice.
No need to create another issue for file.pdf - if that isn't created with
PDFBox then it's not our problem; discuss it with the folks at qpdf or with the
creators of file.pdf .
> QPDF prints warnings about a PDF modified by PDFBOX
> ----------------------------------------------------
>
> Key: PDFBOX-5559
> URL: https://issues.apache.org/jira/browse/PDFBOX-5559
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.27
> Reporter: menteith85
> Priority: Minor
> Attachments: sample.pdf, sample_modified.pdf, screenshot-1.png
>
>
> Hi!
> I created a sample PDF file with PDAnnotationLink using PDFBox. Then I
> changed action from PDActionURI to PDActionGoTo. The modified pdf is
> correctly working in Okular (a pdf viewer for Linux) but *qpdf* (version
> 11.2.0) emits the following warning:
> {code:java}
> ❯ qpdf --linearize --replace-input sample_modified.pdf
> WARNING: sample_modified.pdf, object 2 0 at offset 88: kid 1 (from 0) appears
> more than once in the pages tree; creating a new page object as a copy
> qpdf: there are warnings; original file kept in
> sample_modified.pdf.~qpdf-orig
> qpdf: operation succeeded with warnings; resulting file may have some
> problems{code}
> Please find below the code I used to modify pdf. I can also provide code to
> create that pdf if needed.
> {code:java}
> final PDPage page = doc.getPage(0);
> final PDPageXYZDestination destination = new PDPageXYZDestination();
> destination.setPage(page);
> final PDActionGoTo action = new PDActionGoTo();
> action.setDestination(destination);
> final PDAnnotationLink annotationLink = new PDAnnotationLink();
> annotationLink.setAction(action);
> float X_MARGIN_LEFT = 50F;
> float BOX_WIDTH = 240F;
> float TEXT_LINE_HEIGHT = 14F;
> final PDRectangle position = new PDRectangle();
> final int x = 120;
> final int y = 120;
> position.setLowerLeftX(x);
> position.setLowerLeftY(y);
> position.setUpperRightX(X_MARGIN_LEFT + BOX_WIDTH);
> position.setUpperRightY(y + TEXT_LINE_HEIGHT);
> annotationLink.setRectangle(position);
> page.setAnnotations(List.of(annotationLink));
> doc.save("sample_modified.pdf");{code}
>
> *qpdf* complains also about a different pdf (copyrighted) modified in similar
> way. The warning reads:
> {code:java}
> WARNING: file.pdf: reported number of objects (12991) is not one plus the
> highest object number (12989){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]