![]() |
Printing
Printing a PDF document with ICEpdf is a highly configurable task that allows users to print using a wide range of Java technologies. To aid developers in printing, the package org.icepdf.core.ri.common contains the PrintHelper class that implements Java 2 Printable and Pageable interfaces. The source code for this class is available for users who want to gain a greater understanding of the printing process or modify the printing behavior.
The PrinterHelper class can also be used with Java Printer Services available in JDK 1.4. The printing API introduced in JDK 1.4 allows for far greater flexibility than previous JDKs in detecting printers and their capabilities. The following code example demonstrates how a specific printer can be used with Java Printer Services with no user interaction:
// Create a new attribute set and add a key for the printer // we want to print to. AttributeSet aset = new HashAttributeSet(); aset.add(new PrinterName("HP LaserJet 4050 Series PCL", null)); // Do a look up to try and find our LaserJet printer services = PrintServiceLookup.lookupPrintServices( DocFlavor.SERVICE_FORMATTED.PAGEABLE, aset); // If the LaserJet could not be found then try and find // a default printer which can use the Pageable interface if (services.length == 0) services = PrintServiceLookup.lookupPrintServices( DocFlavor.SERVICE_FORMATTED.PAGEABLE, null); // Finally we can print using the first printer in the // services list which will either be our specified LaserJet // or the default printer on the user's operating system. if (services.length > 0){ printerJob.setPrintService(services[0]); // print the document without any user interaction, no // dialogs. printHelper.print(viewModel.getPrinterJob(), 0, document.getNumberOfPages() - 1, 1, // default number of copies. true, // shrink to printable area false, // show page setup false, // show print dialog pageFormat); } document.dispose();
|
Copyright 2005-2009. ICEsoft Technologies, Inc. |