CONTENTS | PREV | NEXT | JavaTM Print Service API User Guide |
Once you have the Doc and DocPrintJob, you can call the DocPrintJob object's print method to submit the document to the service. The Submitting the Print Job to the Printer section completes the printin g example. The Submitting the Print Job to the Stream section completes the streaming example.
This section completes the printing application explained in this chapter. This example prints five copies of a PostScript document, double-sided on A4 paper, and stapled.See Example: PrintPS.java for the complete application.DocFlavor psFlavor = DocFlavor.INPUT_STREAM.POSTSCRIPT; PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(2)); aset.add(MediaSizeName.ISO_A4); aset.add(Sides.TWO_SIDED_LONG_EDGE); aset.add(Finishings.STAPLE); PrintService[] pservices = PrintServiceLookup.lookupPrintServices(psFlavor, aset); if (services.length > 0) { DocPrintJob pj = pservices[0].createPrintJob(); try { FileInputStream fis = new FileInputStream("example.ps"); Doc doc = new SimpleDoc(fis, psFlavor, null); pj.print(doc, aset); } catch (IOException e) { System.err.println(e); } catch (PrintException e) { System.err.println(e); } }
This section completes the streaming example explained in this chapter. This example converts a GIF document to PostScript and embeds the specified printing attributes into the PostScript document.See Example: PrintGIFtoStream.java for the complete application.DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF; String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType(); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(2)); aset.add(MediaSizeName.ISO_A4); aset.add(Sides.TWO_SIDED_LONG_EDGE); aset.add(Finishings.STAPLE); StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories( flavor, psMimeType); if(factories.length==0) { System.err.println("No suitable factories"); System.exit(0); } try { FileInputStream fis = new FileInputStream("java2dlogo.gif"); String filename = "newfile.ps"; FileOutputStream fos = new FileOutputSteam(filename); StreamPrintService sps= factories[0].getPrintService(fos); DocPrintJob pj = sps.createPrintJob(); Doc doc = new SimpleDoc(fos, psFlavor, aset); pj.print(doc, aset); } catch (IOException e) { System.err.println(e); } catch (PrintException e) { System.err.println(e); } }