[
https://issues.apache.org/jira/browse/PDFBOX-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13166127#comment-13166127
]
Eric Leleu commented on PDFBOX-1188:
------------------------------------
Hi,
According to the PDF Reference v1.7 a "Metadata can be stored in a PDF
document in either of the following ways:
• In a document information dictionary associated with the document
(Section10.2.1)
• In a metadata stream (PDF 1.4) associated with the document or a component of
the document (Section 10.2.2)"
So, the fact that the Font MetaData is a dictionnary instead a Stream makes
invalis this PDF.
In the PDF/A specification, we can read :
"A conforming file may include any valid PDF Reference feature that is not
explicitly forbidden bythis part of ISO 19005.ISO 19005. A conforming file may
include any valid PDF Reference feature that is not explicitly forbidden by
this part of ISO 19005...
...
NOTE 1 ; A conforming file is not obligated to use any PDF feature other than
those explicitly required by PDF Reference or this part of ISO 19005"
To my opinion, the patch proposed by Guillaume is the right thing to do.
BR,
Eric
> 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