Hi Shashwat,

I cannot find string "printString" anywhere in the code so I don't know which string you are referring to that is not printed. Looking at your code though, I noticed that in order to monitor your print job, PrintJobWatcher should implement PrintJobListener and attached to "job" which was created using createPrintJob. See the documnetation on PrintJobListener for more information.

Jennifer

jav...@javadesktop.org wrote:
Hi Everyone

I am working one swing application which need to print on some specific
printer on network. Method which I am using is given below. In this
method i am passing the printer name as parameter and string which is
to be printed is present in the class member [b]printString[/b].

        public boolean print(String printerName) {
                boolean result = false;
                try {
                        ByteArrayInputStream bais = new 
ByteArrayInputStream(printContent.getBytes());
                        PrintService[] services = 
PrinterJob.lookupPrintServices();
                        String [] printerNameList = new String[services.length];
                        for(int count = 0; count < services.length; count++) {
                                printerNameList[count] = 
services[count].getName();
                                if 
(printerNameList[count].equalsIgnoreCase(printerName)) {
                                        DocPrintJob job = 
services[count].createPrintJob();
                                        DocFlavor flavor = 
DocFlavor.BYTE_ARRAY.AUTOSENSE;
                                        Doc doc = new 
SimpleDoc(printContent.getBytes(), flavor, null);
                                        PrintRequestAttributeSet attributes = 
new HashPrintRequestAttributeSet();
                                        attributes.add(new Copies(1));
                                        
                                        PrintJobWatcher pjDone = new 
PrintJobWatcher(job);

                                        job.print(doc, attributes);
                                        
                                        pjDone.waitForDone();
                                        
                                        bais.close();
                                        
                                        result = true;
                                        break;
                                }
                        }
                }
                catch(PrintException ex) {
                        String message = "Error on while printing the content on the 
printer : "  + ex.getMessage();
                        System.out.println(message);
                        ApplicationLogger.getInstance().error(message);
                }
                catch(Exception ex) {
                        String message = "Error on while printing the content : 
"  + ex.getMessage();
                        System.out.println(message);
                        ApplicationLogger.getInstance().error(message);
                }
                return result;
        }

Here is the code for PrintJobWatcher
        class PrintJobWatcher {
        // true iff it is safe to close the print job's input stream
        boolean done = false;
PrintJobWatcher(DocPrintJob job) {
            // Add a listener to the print job
            job.addPrintJobListener(new PrintJobAdapter() {
                public void printJobCanceled(PrintJobEvent event) {
                    allDone();
                }
                public void printJobCompleted(PrintJobEvent event) {
                    allDone();
                }
                public void printJobFailed(PrintJobEvent event) {
                    allDone();
                }
                public void printJobNoMoreEvents(PrintJobEvent event) {
                    allDone();
                }
                void allDone() {
                    synchronized (PrintJobWatcher.this) {
                        done = true;
                        PrintJobWatcher.this.notify();
                    }
                }
            });
        }
        public synchronized void waitForDone() {
            try {
                while (!done) {
                    wait();
                }
            }
            catch (InterruptedException e) {
            }
        }
    }

But my string is not being printed. Please tell where I am doing mistake.

Thanks in advance
Shashwat
[Message sent by forum member 'shashwat_anand' (shashwat_anand)]

http://forums.java.net/jive/thread.jspa?messageID=333974

===========================================================================
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".

Reply via email to