The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.print  [6 examples]

e700. The Quintessential Printing Program Using a Printing Service

This example demonstrates a program that prints an image on the default print service. Since DocPrintJob.print() is not guaranteed to be synchronous, it is necessary to watch for a print job completion event before closing the input stream.
    import java.io.*;
    import javax.print.*;
    import javax.print.attribute.*;
    import javax.print.attribute.standard.*;
    import javax.print.event.*;
    
    public class BasicPrint {
        public static void main(String[] args) {
            try {
                // Open the image file
                InputStream is = new BufferedInputStream(
                    new FileInputStream("filename.gif"));
    
                // Find the default service
                DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
                PrintService service = PrintServiceLookup.lookupDefaultPrintService();
    
                // Create the print job
                DocPrintJob job = service.createPrintJob();
                Doc doc = new SimpleDoc(is, flavor, null);
    
                // Monitor print job events; for the implementation of PrintJobWatcher,
                // see e702 Determining When a Print Job Has Finished
                PrintJobWatcher pjDone = new PrintJobWatcher(job);
    
                // Print it
                job.print(doc, null);
    
                // Wait for the print job to be done
                pjDone.waitForDone();
    
                // It is now safe to close the input stream
                is.close();
            } catch (PrintException e) {
            } catch (IOException e) {
            }
        }
    }

 Related Examples
e701. The Quintessential Printing Program Using a Streaming Printing Service
e702. Determining When a Print Job Has Finished
e703. Discovering Available Print Services
e704. Discovering Available Streaming Print Services
e705. Cancelling a Print Job


© 2002 Addison-Wesley.