import java.io.*; import javax.print.*; import javax.print.attribute.*; import javax.print.attribute.standard.*; import javax.print.event.*; public class { 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 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) { } } }