[
https://issues.apache.org/jira/browse/PDFBOX-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165644#comment-13165644
]
Guillaume Bailleul commented on PDFBOX-1188:
--------------------------------------------
I think the PDF file is really buggy : in the 2 policies, the metadata property
redirect to the catalog xobject of the PDF.
That's why there is a class cast exception.
However, it should not fail like that. I uploaded a patch that modify PDStream
in pdfbox and AbstractFontValidator in preflight. With that patch, validation
ends, and the file is said invalid with 4 errors, I think it is the truth.
I do not know how to handle that case : how should react PDStream.getMetadata
when the metada is not a stream. If anyone have an idea ...
I push that issue to Eric, Maybe he will have a better idea.
> PDStream Exception when using a Cast
> -------------------------------------
>
> Key: PDFBOX-1188
> URL: https://issues.apache.org/jira/browse/PDFBOX-1188
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel, Preflight
> Reporter: William Fausser
> Assignee: Guillaume Bailleul
> Priority: Minor
> Fix For: 1.7.0
>
> Attachments: bill_outPDFA.pdf, font_bad_metadata.patch
>
>
> For some PDF/A, getDictionaryObject does not return COSStream but other
> COSDictionary (super class)
> public PDMetadata getMetadata()
> {
> PDMetadata retval = null;
> COSStream mdStream = (COSStream)stream.getDictionaryObject(
> COSName.METADATA );
> if( mdStream != null )
> {
> retval = new PDMetadata( mdStream );
> }
> return retval;
> }
> org.apache.pdfbox.cos.COSDictionary cannot be cast to
> org.apache.pdfbox.cos.COSStream
> at org.apache.pdfbox.pdmodel.common.PDStream.getMetadata(PDStream.java:508)
> at
> net.padaf.preflight.font.AbstractFontValidator.checkFontFileMetaData(AbstractFontValidator.java:162)
> at
> net.padaf.preflight.font.Type1FontValidator.checkFontFileElement(Type1FontValidator.java:228)
> at
> net.padaf.preflight.font.Type1FontValidator.checkFontDescriptor(Type1FontValidator.java:125)
> at
> net.padaf.preflight.font.SimpleFontValidator.validate(SimpleFontValidator.java:264)
> at
> net.padaf.preflight.helpers.FontValidationHelper.validateFont(FontValidationHelper.java:107)
> at
> net.padaf.preflight.helpers.FontValidationHelper.innerValidate(FontValidationHelper.java:90)
> at
> net.padaf.preflight.helpers.AbstractValidationHelper.validate(AbstractValidationHelper.java:87)
> at
> net.padaf.preflight.AbstractValidator.runValidation(AbstractValidator.java:134)
> at net.padaf.preflight.PdfA1bValidator.validate(PdfA1bValidator.java:90)
> at net.padaf.preflight.Validator_A1b.main(Validator_A1b.java:47)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira