Java tutorial
/* This program is a part of the companion code for Core Java 8th ed. (http://horstmann.com/corejava) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.io.FileInputStream; import java.io.FileNotFoundException; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintException; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.SimpleDoc; /** * This program demonstrates the use of print services. The program lets you print a GIF image to * any of the print services that support the GIF document flavor. * @version 1.10 2007-08-16 * @author Cay Horstmann */ public class PrintServiceTest { public static void main(String[] args) { DocFlavor flavor = DocFlavor.URL.GIF; PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, null); if (args.length == 0) { if (services.length == 0) System.out.println("No printer for flavor " + flavor); else { System.out.println("Specify a file of flavor " + flavor + "\nand optionally the number of the desired printer."); for (int i = 0; i < services.length; i++) System.out.println((i + 1) + ": " + services[i].getName()); } System.exit(0); } String fileName = args[0]; int p = 1; if (args.length > 1) p = Integer.parseInt(args[1]); try { if (fileName == null) return; FileInputStream in = new FileInputStream(fileName); Doc doc = new SimpleDoc(in, flavor, null); DocPrintJob job = services[p - 1].createPrintJob(); job.print(doc, null); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (PrintException e) { e.printStackTrace(); } } }