Mega Code Archive

 
Categories / Java / 2D Graphics GUI
 

Print a GIF image to any of the print services that support the GIF document flavor

/*    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();       }    } }