Thanks for your help Andreas. Can you show me how to deactive the logging
for the applet or like you said, change the path of the logfile?

Thanks,

Victor José Bento
Software Developer | DIGITALMED
Mobile +55 11 7638 4171


2009/3/30 Andreas Lehmkühler <[email protected]>

> It might be a security problem with the applet sandbox. Your stacktrace
> shows an IOException at the end. It is thrown during locking the logfile. As
> the access to local files should be limited in the applet-sandbox it will
> perhaps help to deactive the logging for the applet or to change the path of
> the logfile to a local applet-dir with write access?
>
> Andreas Lehmkühler
>
> ----- original Nachricht --------
>
> Betreff: silentPrint method
> Gesendet: Fr, 27. Mrz 2009
> Von: Victor José Bento<[email protected]>
>
> > Hi. I'm trying to create an applet to use the method silentPrint, the
> > applet works when I run it on NetBeans, but when I try to load it on my
> > webpage (yes I signed all jar files) I can just print my PDF files to a
> > printer that generate tiff files (Microsoft Office Document Image
> Writer),
> > I
> > can't use the Samsung SCX-4x21 Series, that works when I run the applet
> on
> > NetBeans. Using silentPrint() or print() from my webpage I get the
> > following
> > exception, someone can help me?
> >
> > java.awt.print.PrinterIOException
> >  at org.apache.pdfbox.pdmodel.PDPage.print(PDPage.java:768)
> >  at sun.print.RasterPrinterJob.printPage(Unknown Source)
> >  at sun.print.RasterPrinterJob.print(Unknown Source)
> >  at sun.print.RasterPrinterJob.print(Unknown Source)
> >  at org.apache.pdfbox.pdmodel.PDDocument.silentPrint(PDDocument.java:886)
> >  at DMApplet$1.run(DMApplet.java:53)
> >  at DMApplet$1.run(DMApplet.java:23)
> >  at java.security.AccessController.doPrivileged(Native Method)
> >  at DMApplet.Print(DMApplet.java:22)
> >  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >  at java.lang.reflect.Method.invoke(Unknown Source)
> >  at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
> >  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >  at java.lang.reflect.Method.invoke(Unknown Source)
> >  at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
> >  at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
> >  at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
> >  at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
> >  at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
> >  at
> >
> sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDe
> > legate.invoke(Unknown
> > Source)
> >  at
> sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown
> > Source)
> >  at java.security.AccessController.doPrivileged(Native Method)
> >  at
> >
> sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown
> > Source)
> >  at
> >
> sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.r
> > un(Unknown
> > Source)
> >  at java.lang.Thread.run(Unknown Source)
> > Caused by: java.io.IOException: Couldn't get lock for PDFBox.log
> >  at java.util.logging.FileHandler.openFiles(Unknown Source)
> >  at java.util.logging.FileHandler.<init>(Unknown Source)
> >  at
> > org.apache.pdfbox.exceptions.LoggingObject.logger(LoggingObject.java:38)
> >  at
> >
> org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java
> > :221)
> >  at
> >
> org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:17
> > 3)
> >  at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:88)
> >  at org.apache.pdfbox.pdmodel.PDPage.print(PDPage.java:764)
> >  ... 28 more
> > Now my method:
> >
> > public static String Print(final String printerName, final String
> > urlDocument)
> >     {
> >         String retornoFinal = "";
> >         retornoFinal = (String)AccessController.doPrivileged(new
> > PrivilegedAction<String>()
> >         {
> >             public String run()
> >             {
> >                 String retorno = "";
> >                 boolean erro = true;
> >                 PDDocument impressao = null;
> >                 try
> >                 {
> >                     PrintService impressoras[] =
> > PrintServiceLookup.lookupPrintServices(null, null);
> >                     PrinterJob printerJob = PrinterJob.getPrinterJob();
> >                     impressao = PDDocument.load(new
> > URL(urlDocument).openStream());
> >                     for(int i = 0; i < impressoras.length; i++)
> >                     {
> >                         if
> > (impressoras[i].getName().equalsIgnoreCase(printerName.trim()))
> >                         {
> >                             printerJob.setPrintService(impressoras[i]);
> >                             erro = false;
> >                             break;
> >                         }
> >                     }
> >                     if (erro)
> >                     {
> >                         retorno += "Não foi possível encontrar a
> impressora
> > " + printerName.trim();
> >                     }
> >                     else
> >                     {
> >                         impressao.silentPrint(printerJob);
> >                     }
> >                 }
> >                 catch (Exception ex)
> >                 {
> >                     ex.printStackTrace();
> >                 }
> >                 finally
> >                 {
> >                     try {
> >                         impressao.close();
> >                     } catch (IOException ex) {
> >
> > Logger.getLogger(DMApplet.class.getName()).log(Level.SEVERE, null, ex);
> >                     }
> >                 }
> >                 return retorno;
> >             }
> >         });
> >         return retornoFinal;
> >     }
> >
> > Thanks!
> >
> > Victor José Bento
> > Software Developer | DIGITALMED
> > Mobile +55 11 7638 4171
> >
>
> --- original Nachricht Ende ----
>
>

Reply via email to