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:36:00 UTC

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

     [ https://issues.apache.org/jira/browse/PDFBOX-5559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

menteith85 updated PDFBOX-5559:
-------------------------------
    Description: 
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}

  was:
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}


> 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
>
>
> 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: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org