PrintServiceTest.java Source code

Java tutorial

Introduction

Here is the source code for PrintServiceTest.java

Source

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