I had overlooked some char string commands, I’ve now added them and the file 
from PDFBOX-1019 now renders beautifully.

I will update my patch once JIRA starts working again...

-- John

On 14 Jan 2014, at 04:48, Tilman Hausherr (JIRA) <j...@apache.org> wrote:

> 
>     [ 
> https://issues.apache.org/jira/browse/PDFBOX-1844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
> 
> Tilman Hausherr updated PDFBOX-1844:
> ------------------------------------
> 
>    Attachment: redp4581.pdf
> 
> Almost nothing is rendered with this file:
> 
> java.lang.UnsupportedOperationException: Unknown command: dotsection
>       at 
> org.apache.fontbox.cff.Type1CharString.handleCommand(Type1CharString.java:265)
>       at 
> org.apache.fontbox.cff.Type1CharString.access$000(Type1CharString.java:39)
>       at 
> org.apache.fontbox.cff.Type1CharString$1.handleCommand(Type1CharString.java:135)
>       at 
> org.apache.fontbox.cff.CharStringHandler.handleSequence(CharStringHandler.java:47)
>       at 
> org.apache.fontbox.cff.Type1CharString.render(Type1CharString.java:138)
>       at 
> org.apache.fontbox.cff.Type1CharString.getPath(Type1CharString.java:110)
>       at 
> org.apache.pdfbox.pdfviewer.font.Type1Glyph2D.<init>(Type1Glyph2D.java:95)
>       at 
> org.apache.pdfbox.pdfviewer.font.Type1Glyph2D.<init>(Type1Glyph2D.java:56)
>       at 
> org.apache.pdfbox.pdfviewer.PageDrawer.createGlyph2D(PageDrawer.java:523)
>       at 
> org.apache.pdfbox.pdfviewer.PageDrawer.processTextPosition(PageDrawer.java:282)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:485)
>       at 
> org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:529)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:258)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:225)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:205)
>       at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:154)
>       at org.apache.pdfbox.util.RenderUtil.renderPage(RenderUtil.java:213)
>       at org.apache.pdfbox.util.RenderUtil.convertToImage(RenderUtil.java:177)
>       at 
> org.apache.pdfbox.util.PDFImageWriter.writeImage(PDFImageWriter.java:117)
>       at pdfboxpageimageextraction.ExtractImages.doPdf(ExtractImages.java:358)
>       at pdfboxpageimageextraction.ExtractImages.main(ExtractImages.java:80)
> 
> The file I mentioned this morning is also not rendered, I get
> 
> 14.01.2014 13:43:50.195 WARN  [main] 
> org.apache.pdfbox.util.PDFStreamEngine:542 - 
> java.lang.UnsupportedOperationException: Unknown command: div
> java.lang.UnsupportedOperationException: Unknown command: div
>       at 
> org.apache.fontbox.cff.Type1CharString.handleCommand(Type1CharString.java:265)
>       at 
> org.apache.fontbox.cff.Type1CharString.access$000(Type1CharString.java:39)
>       at 
> org.apache.fontbox.cff.Type1CharString$1.handleCommand(Type1CharString.java:135)
>       at 
> org.apache.fontbox.cff.CharStringHandler.handleSequence(CharStringHandler.java:47)
>       at 
> org.apache.fontbox.cff.Type1CharString.render(Type1CharString.java:138)
>       at 
> org.apache.fontbox.cff.Type1CharString.getPath(Type1CharString.java:110)
>       at 
> org.apache.pdfbox.pdfviewer.font.Type1Glyph2D.<init>(Type1Glyph2D.java:95)
>       at 
> org.apache.pdfbox.pdfviewer.font.Type1Glyph2D.<init>(Type1Glyph2D.java:67)
>       at 
> org.apache.pdfbox.pdfviewer.PageDrawer.createGlyph2D(PageDrawer.java:532)
>       at 
> org.apache.pdfbox.pdfviewer.PageDrawer.processTextPosition(PageDrawer.java:282)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:485)
>       at 
> org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:529)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:258)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:225)
>       at 
> org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:205)
>       at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:154)
>       at org.apache.pdfbox.util.RenderUtil.renderPage(RenderUtil.java:213)
>       at org.apache.pdfbox.util.RenderUtil.convertToImage(RenderUtil.java:177)
>       at pdfboxpageimageextraction.ExtractImages.doPdf(ExtractImages.java:259)
>       at pdfboxpageimageextraction.ExtractImages.main(ExtractImages.java:80)
> 
> (Restricted to jira-users group)
>> [PATCH] Parser for Type 1 Fonts
>> -------------------------------
>> 
>>                Key: PDFBOX-1844
>>                URL: https://issues.apache.org/jira/browse/PDFBOX-1844
>>            Project: PDFBox
>>         Issue Type: Improvement
>>         Components: FontBox
>>   Affects Versions: 2.0.0
>>           Reporter: John Hewson
>>             Labels: patch, rendering
>>        Attachments: CustomEncoding.java, Token.java, 
>> Type1CharStringReader.java, Type1Font.java, Type1Glyph2D.java, 
>> Type1Lexer.java, Type1Mapping.java, Type1Parser.java, latexdemo.pdf, 
>> redp4581.pdf, test.pdf, type1.patch
>> 
>> 
>> This patch adds a parser for Type 1 fonts to FontBox and makes use of it in 
>> PDFBox for rendering Type 1 glyphs. This should fix various issues with the 
>> JVM crashing and rendering fonts incorrectly.
>> It was necessary to modify Type1CharStringParser to handle the 
>> `callothersubr` command and correctly handle subroutines. Likewise, 
>> Type1CharString was modified to support "flex".
>> This patch does not remove the AWT fallback for non-embedded and standard 14 
>> fonts because an entirely new fallback system is needed and suitable fonts 
>> will need to be shipped as part of PDFBox. This needs to be discussed on the 
>> mailing list and/or in follow-on issue.
>> Note: To keep this patch small I have not replaced any of the existing 
>> ad-hoc Type 1 parsing code in PDType1Font and preflight. Those classes 
>> retain their original code which can be replaced in subsequent 
>> patches/refactoring. I can open follow-on issues for these.
>> ~~~
>> As well as the patch, the these files were added:
>> + /pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/font/Type1Glyph2D.java
>> + /fontbox/src/main/java/org/apache/fontbox/encoding/CustomEncoding.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Token.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Type1CharStringReader.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Type1Font.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Type1Mapping.java
>> + /fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java
>> And this file was removed:
>> - /pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/font/CFFGlyph2D.java
> 
> 
> 
> --
> This message was sent by Atlassian JIRA
> (v6.1.5#6160)

Reply via email to