> On 8 Sep 2016, at 04:07, Robin Jonsson (JIRA) <[email protected]> wrote:
>
>
> [
> https://issues.apache.org/jira/browse/PDFBOX-2682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15473561#comment-15473561
> ]
>
> Robin Jonsson commented on PDFBOX-2682:
> ---------------------------------------
>
> [-tresf] Thanks, keep us updated on that bug!
>
> I tried DocFlavor.INPUT_STREAM.PDF but it only works properly in Mac. I
> couldn't get it to work on Windows or Linux. My program needs to be able to
> run on all 3 systems.
> I ended up doing a check to see if it was a Mac OS
INPUT_STREAM.PDF might work on Linux if you install CUPS-PDF, but I haven’t
tried. I don’t know of any Windows solution. Your Mac-specific workaround is
probably the best choice (until Oracle fix the bug).
— John
> {code:java}
> int potentialDpiRasterizer = SystemUtils.IS_OS_MAC ? 203 : 0;
> {code}
>
> But again, thanks for the suggestions, and keep us updated.
> Regards
>
>> 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: RE1506000090.pdf, TMPPRINTFILE.pdf, screenshot-1.png
>>
>>
>> EI 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: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]