[
https://issues.apache.org/jira/browse/PDFBOX-6142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18051174#comment-18051174
]
Michael Klink commented on PDFBOX-6142:
---------------------------------------
[~lehmi],
As far as valid object streams are concerned, you likely are right, PDFBox will
parse them correctly (at least most of the time (*)).
In case of not completely valid object object streams, though, PDFBox will try
to make sense of them differently than the other PDF parsers tested by
[~tilman] in his first comment. In my eyes that would be a case of GIGO, i.e.
you're done; but in the context of other issues that I'd also had considered
GIGO, PDFBox development expressed an interest in handling such errors
similarly to Acrobat. If that interest is still there, then you're not done.
-----
(*) I think you still have an issue if the same object number occurs multiple
times in the same object stream. PDFBox in that case always uses the _last_
occurrence. On one hand, if the cross reference stream data contains a third
field, that field determines which indes to use. And on the other hand, if the
cross reference stream does not contain a third field, other PDF viewers might
default otherwise, in particular I don't know what Acrobat does.
> New release will produce incorrect files.
> -----------------------------------------
>
> Key: PDFBOX-6142
> URL: https://issues.apache.org/jira/browse/PDFBOX-6142
> Project: PDFBox
> Issue Type: Bug
> Components: Writing
> Affects Versions: 3.0.6 PDFBox, 4.0.0
> Reporter: Daniel Persson
> Assignee: Andreas Lehmkühler
> Priority: Critical
> Fix For: 3.0.7 PDFBox, 4.0.0
>
> Attachments: after.pdf, before.pdf
>
>
> After just running load and save of a file I get multiple syntax errors in
> the result. No errors in the original.
>
>
> {code:java}
> PDDocument doc = Loader.loadPDF(new File("before.pdf"));
> doc.save(new File("after.pdf")); {code}
>
>
> When I have run this code I will then render the PDF with Poppler
>
> {code:java}
> pdftoppm version 25.08.0
> Copyright 2005-2025 The Poppler Developers - http://poppler.freedesktop.org
> Copyright 1996-2011, 2022 Glyph & Cog, LLC
> {code}
>
>
> Running this command
>
> {code:java}
> pdftoppm -png after.pdf after {code}
>
>
> Will generate a lot off Syntax errors
> Syntax Error: Unterminated string
> Syntax Error: End of file inside dictionary
> Syntax Error (4124140): Illegal character ')'
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: Dictionary key must be a name object
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: Unterminated hex string
> Syntax Error (4127569): Illegal character <2f> in hex string
> Syntax Error (4127569): Illegal character <73> in hex string
> Syntax Error (4127569): Illegal character <6f> in hex string
> Syntax Error (4127569): Illegal character <6e> in hex string
> Syntax Error (4127569): Illegal character <74> in hex string
> Syntax Error (4127569): Illegal character <2f> in hex string
> Syntax Error (4127570): Illegal character <52> in hex string
> Syntax Error (4127571): Illegal character <4b> in hex string
> Syntax Error (4127572): Illegal character <47> in hex string
> Syntax Error (4127573): Illegal character <4e> in hex string
> Syntax Error (4127574): Illegal character <4f> in hex string
> Syntax Error (4127575): Illegal character <51> in hex string
> Syntax Error (4127577): Illegal character <2b> in hex string
> Syntax Error (4127577): Illegal character <47> in hex string
> Syntax Error (4127577): Illegal character <69> in hex string
> Syntax Error (4127577): Illegal character <6c> in hex string
> Syntax Error (4127577): Illegal character <6c> in hex string
> Syntax Error (4127577): Illegal character <53> in hex string
> Syntax Error (4127577): Illegal character <6e> in hex string
> Syntax Error (4127577): Illegal character <73> in hex string
> Syntax Error (4127580): Illegal character <2f> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error (4127580): Illegal character <6f> in hex string
> Syntax Error (4127580): Illegal character <69> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error (4127580): Illegal character <67> in hex string
> Syntax Error (4127580): Illegal character <2f> in hex string
> Syntax Error (4127580): Illegal character <57> in hex string
> Syntax Error (4127580): Illegal character <69> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error (4127580): Illegal character <73> in hex string
> Syntax Error (4127580): Illegal character <69> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error (4127580): Illegal character <6f> in hex string
> Syntax Error (4127580): Illegal character <69> in hex string
> Syntax Error (4127580): Illegal character <6e> in hex string
> Syntax Error: Unterminated hex string
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: Unterminated hex string
> Syntax Error (4128664): Illegal character <2f> in hex string
> Syntax Error (4128664): Illegal character <4d> in hex string
> Syntax Error (4128664): Illegal character <74> in hex string
> Syntax Error (4128664): Illegal character <74> in hex string
> Syntax Error (4128667): Illegal character <52> in hex string
> Syntax Error (4128667): Illegal character <2f> in hex string
> Syntax Error (4128667): Illegal character <53> in hex string
> Syntax Error (4128667): Illegal character <75> in hex string
> Syntax Error (4128667): Illegal character <74> in hex string
> Syntax Error (4128667): Illegal character <79> in hex string
> Syntax Error (4128667): Illegal character <70> in hex string
> Syntax Error (4128667): Illegal character <2f> in hex string
> Syntax Error (4128667): Illegal character <58> in hex string
> Syntax Error (4128667): Illegal character <4d> in hex string
> Syntax Error (4128667): Illegal character <4c> in hex string
> Syntax Error (4128667): Illegal character <2f> in hex string
> Syntax Error (4128667): Illegal character <54> in hex string
> Syntax Error (4128667): Illegal character <79> in hex string
> Syntax Error (4128667): Illegal character <70> in hex string
> Syntax Error (4128667): Illegal character <2f> in hex string
> Syntax Error (4128667): Illegal character <4d> in hex string
> Syntax Error (4128667): Illegal character <74> in hex string
> Syntax Error (4128667): Illegal character <74> in hex string
> Syntax Error (4128667): Illegal character '>'
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: End of file inside array
> Syntax Error: End of file inside dictionary
> Syntax Error: Unterminated string
> Syntax Error: End of file inside dictionary
> Syntax Error (4130539): Illegal character ')'
> Syntax Error: End of file inside dictionary
> Syntax Error: Unterminated string
> Syntax Error: End of file inside dictionary
> Syntax Error: Unterminated string
> Syntax Error: End of file inside dictionary
> Syntax Error: Kid object (page 1) is wrong type (integer)
>
> Test is running on the last commit on the 3.0 branch.
> commit 41fbf05f7b470a92ca396f5253896a3d9d253e11 (HEAD -> 3.0, upstream/3.0)
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]