[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16863274#comment-16863274 ] Jack edited comment on PDFBOX-4559 at 6/13/19 4:47 PM: --- [~tilman] cool, thanks for taking care of this, what'll be the new version? was (Author: jiangyurong609): [~tilman] cool, what'll be the new version? > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Documentation, Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Fix For: 2.0.16, 3.0.0 PDFBox > > Attachments: test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket PDFBOX-3654. But seems that issue was fixed. I'd > like to learn if we have some more bugs related? > *Sample code*: > {code:java} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:265) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:314) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:243) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:229) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > WARN [PDType1Font] Using fallback font Helvetica for POAEND+Gotham-Book > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org
[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16857895#comment-16857895 ] Jack edited comment on PDFBOX-4559 at 6/6/19 6:24 PM: -- [~tilman] I just realized this code always render the first page was (Author: jiangyurong609): [~tilman] I just realized this code always render the first page. {code:java} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallelstream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } });{code} > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Documentation, Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Fix For: 2.0.16, 3.0.0 PDFBox > > Attachments: test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket PDFBOX-3654. But seems that issue was fixed. I'd > like to learn if we have some more bugs related? > *Sample code*: > {code:java} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:265) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:314) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:243) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:229) >
[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16857895#comment-16857895 ] Jack edited comment on PDFBOX-4559 at 6/6/19 5:07 PM: -- [~tilman] I just realized this code always render the first page. {code:java} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallelstream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } });{code} was (Author: jiangyurong609): [~tilman] I just realized this code always render the first page. Any {code:java} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallelstream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } }); > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Documentation, Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Fix For: 2.0.16, 3.0.0 PDFBox > > Attachments: test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket PDFBOX-3654. But seems that issue was fixed. I'd > like to learn if we have some more bugs related? > *Sample code*: > {code:java} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:265) >
[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16857895#comment-16857895 ] Jack edited comment on PDFBOX-4559 at 6/6/19 5:07 PM: -- [~tilman] I just realized this code always render the first page. Any {code:java} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallelstream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } }); was (Author: jiangyurong609): [~tilman] I just realized this code always render the first page. PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallelstream.forEach(page -> {try{ renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number}catch (IOException e) {System.err.println("error" + page); e.printStackTrace(); } }); > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Documentation, Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Fix For: 2.0.16, 3.0.0 PDFBox > > Attachments: test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket PDFBOX-3654. But seems that issue was fixed. I'd > like to learn if we have some more bugs related? > *Sample code*: > {code:java} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:265) >
[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16856942#comment-16856942 ] Tilman Hausherr edited comment on PDFBOX-4559 at 6/5/19 6:53 PM: - [https://pdfbox.apache.org/2.0/faq.html#is-pdfbox-thread-safe] "PDFBox has experimental support for read-only operations on the same PDDocument from different threads." I wonder if it is a problem that different documents share the same memory scratch "file" object. You don't have to use the splitter: {code:java} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); // "true" makes it parallel stream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } }); {code} I didn't get the exception with that one, and it seemed faster too: 3 seconds instead of 19 seconds. was (Author: tilman): https://pdfbox.apache.org/2.0/faq.html#is-pdfbox-thread-safe "PDFBox has experimental support for read-only operations on the same PDDocument from different threads." I wonder if it is a problem that different documents share the same memory scratch "file" object. You don't have to use the splitter: {code} PDFRenderer renderer = new PDFRenderer(document); Stream stream = StreamSupport.stream(document.getPages().spliterator(), true); stream.forEach(page -> { try { renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your number } catch (IOException e) { System.err.println("error" + page); e.printStackTrace(); } }); {code} I didn't get the exception with that one, and it seemed faster too: 3 seconds instead of 19 seconds. > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Attachments: test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket PDFBOX-3654. But seems that issue was fixed. I'd > like to learn if we have some more bugs related? > *Sample code*: > {code:java} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at >
[jira] [Comment Edited] (PDFBOX-4559) Parse error reading embedded Type1 font
[ https://issues.apache.org/jira/browse/PDFBOX-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16856798#comment-16856798 ] Jack edited comment on PDFBOX-4559 at 6/5/19 3:45 PM: -- [~tilman] I didn't find a way to create parallel stream on spliterator(), do you have any suggestions? I tried both code below, I have another question, from [https://pdfbox.apache.org/2.0/migration.html], I found with PDPage, you have to pass the page index to render, how do you do that with parallel stream? Thanks so much {code:java} PDDocument document = PDDocument.load(new File(pdfFilename)); document.getPages().spliterator().forEachRemaining(page -> processPDF(page, pdfRenderer, path + UUID.randomUUID().toString() + ".png")); {code} {code:java} for (PDPage page : document.getPages()) { processPDF(page, pdfRenderer, path + UUID.randomUUID().toString() + ".png"); }{code} was (Author: jiangyurong609): [~tilman] interesting thing, I tried both code below, they only output exact same image, I attached it in the attachment. Is this a bug, or I may missed something? Meanwhile, I didn't find a way to create parallel stream on spliterator(), do you have any suggestions? Thanks {code:java} PDDocument document = PDDocument.load(new File(pdfFilename)); document.getPages().spliterator().forEachRemaining(page -> processPDF(page, pdfRenderer, path + UUID.randomUUID().toString() + ".png")); {code} {code:java} for (PDPage page : document.getPages()) { processPDF(page, pdfRenderer, path + UUID.randomUUID().toString() + ".png"); }{code} > Parse error reading embedded Type1 font > --- > > Key: PDFBOX-4559 > URL: https://issues.apache.org/jira/browse/PDFBOX-4559 > Project: PDFBox > Issue Type: Bug > Components: Rendering >Affects Versions: 2.0.15 > Environment: Oracle Java 8 update125 on both Mac OS X and centos >Reporter: Jack >Priority: Major > Labels: type1, type1font > Attachments: 1ad65a37-3b3a-4e26-a40c-f2d90026a5bd.png, test.pdf > > > I got following error while running a simple parallel rendering code. > However, the error doesn't happen when I change parallelStream to sequential > (stream()). Interestingly, both methods will render exact same images. I saw > a possible related ticket > [PDFBOX-3654|https://issues.apache.org/jira/browse/PDFBOX-3654]. But seems > that issue was fixed. I'd like to learn if we have some more bugs related? > *Sample code*: > {code} > PDDocument document = PDDocument.load(new File(pdfFilename)); > List pdfPages = new Splitter().split(document); > pdfPages.parallelStream().forEach(page -> { > try { > PDFRenderer renderer = new PDFRenderer(page); > renderer.renderImageWithDPI(0, 180, ImageType.RGB); // change dpi to your > number > } catch (IOException e) { > System.out.println(e); > } > try { > pdfPage.close(); > } catch (IOException ignored) { > } > }); > try { > document.close(); > } catch (IOException ignored) { > } > {code} > > *Error log*: > {noformat} > ERROR [PDType1Font] Can't read the embedded Type1 font POAEND+Gotham-Book > java.io.IOException: unexpected closing parenthesis > at org.apache.fontbox.type1.Type1Lexer.readToken(Type1Lexer.java:123) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Lexer.nextToken(Type1Lexer.java:75) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readValue(Type1Parser.java:398) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.readOtherSubrs(Type1Parser.java:707) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parseBinary(Type1Parser.java:550) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Parser.parse(Type1Parser.java:64) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.fontbox.type1.Type1Font.createWithSegments(Type1Font.java:85) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.font.PDType1Font.(PDType1Font.java:262) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869) > ~[pdfbox-2.0.15-snapshot108.jar:2.0.15-SNAPSHOT] > at >