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)