[
https://issues.apache.org/jira/browse/PDFBOX-455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709464#action_12709464
]
Sean Bridges commented on PDFBOX-455:
-------------------------------------
I think the root cause is that the BaseFont value is a String (Courier
New,Bold) , while it should be a Name. The pdf is invalid. The dictionary is
correctly parsed.
An alternate solution might to check for this error after parsing a font, and
replace the COSString with a COSName. Having COSDictionary be lenient with
respect to the types it expects may make the parser more robust in other areas.
> java.lang.ClassCastException: org.pdfbox.cos.COSString cannot be cast to
> org.pdfbox.cos.COSName
> ------------------------------------------------------------------------------------------------
>
> Key: PDFBOX-455
> URL: https://issues.apache.org/jira/browse/PDFBOX-455
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 0.7.3
> Reporter: Sean Bridges
>
> I'm getting this error parsing a pdf file,
> java.lang.ClassCastException: org.pdfbox.cos.COSString cannot be cast to
> org.pdfbox.cos.COSName
> at org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java:330)
> at
> org.pdfbox.pdmodel.font.PDSimpleFont.getFontHeight(PDSimpleFont.java:104)
> at org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:336)
> at org.pdfbox.util.operator.ShowText.process(ShowText.java:64)
> at
> org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452)
> at
> org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215)
> at
> org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174)
> at org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336)
> at
> org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259)
> at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
> at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)
> Unfortunately, I can't give you the pdf file, but the PDFFont->font->items
> map for the instance in question is,
> {cosname{fontdescriptor}=org.pdfbox.cos.cosdiction...@1041876,
> COSName{Subtype}=COSName{TrueType}, COSName{Widths}=COSArray{[COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600}, COSInt{600},
> COSInt{600}, COSInt{600}, COSInt{600}]}, COSName{Encoding}=COSObject{4, 0},
> COSName{FirstChar}=COSInt{0}, COSName{Type}=COSName{Font},
> COSName{BaseFont}=COSString{Courier New,Bold}, COSName{LastChar}=COSInt{255}}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.