[ https://issues.apache.org/jira/browse/PDFBOX-2682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14591989#comment-14591989 ]
Emmeran Seehuber commented on PDFBOX-2682: ------------------------------------------ Any news on this bug? I use PDFBox to print some PDFs in a Swing application, and need to upgrade to 2.0 because otherwise the embedded font (OpenSans) is not used ... But with the 2.0.0-SNAPSHOT I get this error, and halve the document is missing because an image is drawn ... :( As said in the original report: The PDF prints "fine" with PDFBox 1.8.9, just the embedded font does not get used. Of course, I ensure that my code runs in the AWT Event Thread (Using EventQueue.invokeLater()). JDK 1.8.0_45 on Mac OS X Yosemite. [~RobzInadE] Do you have a link to the JDK bug you filled? I get this Exception: {code} 2015-06-18 17:09:02.802 java[23790:5456873] Cocoa AWT: Not running on AppKit thread 0 when expected. ( 0 libosxapp.dylib 0x0000000131a07782 +[ThreadUtilities getJNIEnv] + 38 1 libawt_lwawt.dylib 0x000000013197cb89 syncFromJavaPixels + 1842 2 libawt_lwawt.dylib 0x000000013197d01f LockImage + 75 3 libawt_lwawt.dylib 0x000000013198fd1c Java_sun_java2d_CRenderer_doImage + 170 4 ??? 0x0000000109915e64 0x0 + 4455489124 ) 2015-06-18 17:09:02.803 java[23790:5456873] Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case. java.lang.StackOverflowError at sun.java2d.CRenderer.doImage(Native Method) at sun.java2d.OSXSurfaceData.blitImage(OSXSurfaceData.java:1027) at sun.java2d.CRenderer.blitImage(CRenderer.java:461) at sun.java2d.CRenderer.scaleImage(CRenderer.java:455) at sun.java2d.CRenderer.transformImage(CRenderer.java:508) at sun.java2d.CRenderer.transformImage(CRenderer.java:582) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3461) at sun.print.ProxyGraphics2D.drawImage(ProxyGraphics2D.java:1315) at org.apache.pdfbox.rendering.PageDrawer.drawBufferedImage(PageDrawer.java:802) at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:766) at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:51) at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:795) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:462) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:438) at org.apache.pdfbox.contentstream.PDFStreamEngine.showForm(PDFStreamEngine.java:178) at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:63) at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:795) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:462) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:438) at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:180) at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:205) at org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:166) at org.apache.pdfbox.printing.PDFPrinter$PDFPrintable.print(PDFPrinter.java:430) at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:653) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227) at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:291) at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1323) at org.apache.pdfbox.printing.PDFPrinter.print(PDFPrinter.java:250) at org.apache.pdfbox.printing.PDFPrinter.silentPrint(PDFPrinter.java:182) at org.apache.pdfbox.printing.PDFPrinter.silentPrint(PDFPrinter.java:162) {code} > Silent Print on Mac OSX complains it's not ran on Cocoa AWT thread > ------------------------------------------------------------------ > > Key: PDFBOX-2682 > URL: https://issues.apache.org/jira/browse/PDFBOX-2682 > Project: PDFBox > Issue Type: Bug > Affects Versions: 2.0.0 > Environment: Mac OSX 10.10.2 > 2,8 GHz Intel Core i7 > JDK 8u20 > Reporter: Robin Jonsson > Priority: Critical > Attachments: TMPPRINTFILE.pdf > > > I recently tested upgrading the PDFBox version in my project from 1.8.8 to > 2.0.0-SNAPSHOT > I ran into problems when printing silently via PDFPrinter.java > I ran this code: > {code} > private Status doPdfPrint(Document document, PrintService printService) { > ByteArrayInputStream bais = null; > PDDocument doc = null; > PrinterJob printerJob = PrinterJob.getPrinterJob(); > try { > printerJob.setPrintService(printService); > bais = new ByteArrayInputStream(document.getDecodedData()); > doc = PDDocument.load(bais, true); //Force load > PDFPrinter pdfPrinter = new PDFPrinter(doc); > pdfPrinter.silentPrint(printerJob); > //doc.silentPrint(printerJob); > doc.close(); > bais.close(); > } catch (IOException | PrinterException e) { > log.warn("Failed to print! Exception occurred: {}", > e.getMessage()); > log.debug("EXCEPTION", e); > return Status.PRINTING_FAILED; > } finally { > IOUtils.closeQuietly(bais); > IOUtils.closeQuietly(doc); > } > return Status.PRINTING_OK; > } > {code} > *Which resulted in the following stacktrace:* > {code} > 2015-02-12 08:10:44.475 java[20264:1353636] Cocoa AWT: Not running on AppKit > thread 0 when expected. ( > 0 libosxapp.dylib 0x0000000125997782 +[ThreadUtilities > getJNIEnv] + 38 > 1 libawt_lwawt.dylib 0x000000012bf3004d syncFromJavaPixels > + 1842 > 2 libawt_lwawt.dylib 0x000000012bf304e3 LockImage + 75 > 3 libawt_lwawt.dylib 0x000000012bf43040 > Java_sun_java2d_CRenderer_doImage + 170 > 4 ??? 0x0000000108c15694 0x0 + 4441855636 > 5 ??? 0x0000000108c0798d 0x0 + 4441799053 > ) > 2015-02-12 08:10:44.475 java[20264:1353636] Please file a bug report > at http://java.net/jira/browse/MACOSX_PORT with this message and a > reproducible test case. > 2015-02-12 08:10:44.478 java[20264:1353636] java.lang.StackOverflowError > at sun.java2d.CRenderer.doImage(Native Method) > at sun.java2d.OSXSurfaceData.blitImage(OSXSurfaceData.java:1027) > at sun.java2d.CRenderer.blitImage(CRenderer.java:461) > at sun.java2d.CRenderer.scaleImage(CRenderer.java:455) > at sun.java2d.CRenderer.transformImage(CRenderer.java:508) > at sun.java2d.CRenderer.transformImage(CRenderer.java:582) > at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3461) > at sun.print.ProxyGraphics2D.drawImage(ProxyGraphics2D.java:1315) > at > org.apache.pdfbox.rendering.PageDrawer.drawBufferedImage(PageDrawer.java:755) > at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:719) > at > org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:51) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:802) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:464) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:438) > at > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) > at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:160) > at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:203) > at > org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:166) > at > org.apache.pdfbox.printing.PDFPrinter$PDFPrintable.print(PDFPrinter.java:430) > at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:653) > at sun.lwawt.macosx.CPrinterJob.printToPathGraphics(CPrinterJob.java:667) > at sun.lwawt.macosx.CPrinterJob.printLoop(Native Method) > at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:303) > at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1323) > at org.apache.pdfbox.printing.PDFPrinter.print(PDFPrinter.java:250) > at org.apache.pdfbox.printing.PDFPrinter.silentPrint(PDFPrinter.java:182) > at com.memnon.printr.PrintHandler.doPdfPrint(PrintHandler.java:123) > at com.memnon.printr.PrintHandler.print(PrintHandler.java:87) > at com.memnon.printr.PrintHandler.print(PrintHandler.java:77) > at com.memnon.printr.PrintHandler.print(PrintHandler.java:48) > at > com.memnon.printr.communication.DocumentResponseHandler.handleSuccessful(DocumentResponseHandler.java:78) > at > com.memnon.printr.communication.DocumentResponseHandler.handle(DocumentResponseHandler.java:53) > at > com.memnon.printr.messaging.PrintConsumer.executePrinterJob(PrintConsumer.java:62) > at com.memnon.printr.messaging.PrintConsumer.run(PrintConsumer.java:44) > at java.lang.Thread.run(Thread.java:745) > 2015-02-12 08:10:44.493 java[20264:1353636] NSAlert is being used from a > background thread, which is not safe. This is probably going to crash > sometimes. Break on void _NSAlertWarnUnsafeBackgroundThreadUsage() to debug. > This will be logged only once. This may break in the future. > 2015-02-12 08:10:46.639 java[20264:1353636] Apple AWT Internal Exception: > Printing failed because PMSessionEndDocumentNoDialog() returned -30871. > 2015-02-12 08:10:46.639 java[20264:1353636] *** Terminating app due to > uncaught exception 'NSInternalInconsistencyException', reason: 'Printing > failed because PMSessionEndDocumentNoDialog() returned -30871.' > *** First throw call stack: > ( > 0 CoreFoundation 0x00007fff8895c66c > __exceptionPreprocess + 172 > 1 libobjc.A.dylib 0x00007fff890e876e > objc_exception_throw + 43 > 2 CoreFoundation 0x00007fff8895c51d +[NSException > raise:format:] + 205 > 3 AppKit 0x00007fff8d117e80 > -[NSPrintSpoolingGraphicsContext dealloc] + 43 > 4 libobjc.A.dylib 0x00007fff890fb89c > _ZN11objc_object17sidetable_releaseEb + 236 > 5 libobjc.A.dylib 0x00007fff890e1e8f > _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 575 > 6 CoreFoundation 0x00007fff88834302 > _CFAutoreleasePoolPop + 50 > 7 libawt_lwawt.dylib 0x000000012bf25fa4 > Java_sun_lwawt_macosx_CPrinterJob_printLoop + 165 > 8 ??? 0x0000000108c15694 0x0 + 4441855636 > 9 ??? 0x0000000108c07160 0x0 + 4441796960 > 10 ??? 0x0000000108c0798d 0x0 + 4441799053 > ) > libc++abi.dylib: terminating with uncaught exception of type NSException > {code} > I saved the byte array output to a file and attached it to this case. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org