[
https://issues.apache.org/jira/browse/PDFBOX-5561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17681679#comment-17681679
]
Tilman Hausherr edited comment on PDFBOX-5561 at 1/29/23 5:23 AM:
------------------------------------------------------------------
Thank you [~mkl].
After debugging the code, I see that doWriteObject() does set an object number
for the XRef stream and even calls addXRefEntry() to add this number, however
at that time, the object has already been created (by calling {{COSStream
stream2 = pdfxRefStream.getStream()}}).
I think we need some "special" {{doWriteObject}} that behaves differently.
was (Author: tilman):
Thank you [~mkl].
After debugging the code, I see that doWriteObject() does set an object number
for the XRef stream and even calls addXRefEntry() to add this number, however
at that time, the object has already been created (by calling {{COSStream
stream2 = pdfxRefStream.getStream()}}).
> qpdf shows warnings trying to linearize file modified by PDFBOX
> ---------------------------------------------------------------
>
> Key: PDFBOX-5561
> URL: https://issues.apache.org/jira/browse/PDFBOX-5561
> Project: PDFBox
> Issue Type: Bug
> Components: Writing
> Affects Versions: 2.0.27
> Reporter: menteith
> Priority: Minor
>
> I have a PDF file* that is generated by a software other than PDFBox. When
> the PDF is modified by code given below using PDFBOX, *qpdf* shows the
> following warning:
> {code:java}
> WARNING: modified.pdf: reported number of objects (12991) is not one plus the
> highest object number (12989)
> qpdf: operation succeeded with warnings; resulting file may have some
> problems{code}
> Note the warning is not shown when *qpdf* analyses original pdf file (ie. pdf
> not modified by PDFBox).
> Here's the code to modify PDF in question:
>
> {code:java}
> for (final PDPage page: document.getPages()) {
> page.getAnnotations().forEach(annotation - > {
> if (annotation instanceof PDAnnotationLink link) {
> final PDPageXYZDestination destination = new
> PDPageXYZDestination();
> destination.setPage(document.getPage(1));
> final PDActionGoTo action = new PDActionGoTo();
> action.setDestination(destination);
> link.setAction(action);
> }
> });
> } {code}
>
> I forgot to mention that the result file generated by PDFBox is almost as
> twice as big as the original one.
> *I've sent the file to Tilman Hausherr.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]