[
https://issues.apache.org/jira/browse/PDFBOX-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13166812#comment-13166812
]
Eric Leleu commented on PDFBOX-1188:
------------------------------------
A MetaData object presented by a Dictionary is authorized only as Document
information dictionary.
The Font Stream is a "component of the document", in this case the expected
form of Metadata is a Stream.
Moreover the description of authorized entries in the FontFile dictionary
expects the Font Metadata as a Stream, so dictionary is explicitly exclude.
We already know that the preflight validator is quite restrictive, and maybe
this error should be returned as a Warning instead of error.
I will look in the PFDBox project to search other method where the expected
type isn't found and see which value is return (null or Exception), may be this
will help us in this issue.
> 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: Eric Leleu
> Fix For: 1.7.0
>
> Attachments: bill_outPDFA.pdf, font_bad_metadata.patch, test6.pdf
>
>
> 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