[ 
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

        

Reply via email to