You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "menteith85 (Jira)" <ji...@apache.org> on 2023/01/22 16:34:00 UTC

[jira] [Created] (PDFBOX-5559) QPDF prints warnings about a PDF modified by PDFBOX

menteith85 created PDFBOX-5559:
----------------------------------

             Summary: 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
         Attachments: sample.pdf

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:

`WARNING: file.pdf: reported number of objects (12991) is not one plus the highest object number (12989)`



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org