Example usage for javax.print.attribute.standard Finishings STAPLE

List of usage examples for javax.print.attribute.standard Finishings STAPLE

Introduction

In this page you can find the example usage for javax.print.attribute.standard Finishings STAPLE.

Prototype

Finishings STAPLE

To view the source code for javax.print.attribute.standard Finishings STAPLE.

Click Source Link

Document

Bind the document(s) with one or more staples.

Usage

From source file:Print.java

public static void main(String[] args) throws IOException {
    // These are values we'll set from the command-line arguments
    boolean query = false;
    String printerName = null;//from ww w.j  a  v  a 2 s .  com
    String inputFileName = null;
    String outputFileName = null;
    String outputFileType = null;
    PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();

    // Loop through the arguments
    for (int i = 0; i < args.length; i++) {
        if (args[i].equals("-q"))
            query = true; // Is this is query?
        else if (args[i].equals("-p")) // Specific printer name
            printerName = args[++i];
        else if (args[i].equals("-i")) // The file to print
            inputFileName = args[++i];
        else if (args[i].equals("-ps")) { // Print it to this file
            // Sun's Java 1.4 implementation only supports PostScript
            // output. Other implementations might offer PDF, for example.
            outputFileName = args[++i];
            outputFileType = "application/postscript";
        }
        // The rest of the arguments represent common printing attributes
        else if (args[i].equals("-color")) // Request a color printer
            attributes.add(Chromaticity.COLOR);
        else if (args[i].equals("-landscape")) // Request landscape mode
            attributes.add(OrientationRequested.LANDSCAPE);
        else if (args[i].equals("-letter")) // US Letter-size paper
            attributes.add(MediaSizeName.NA_LETTER);
        else if (args[i].equals("-a4")) // European A4 paper
            attributes.add(MediaSizeName.ISO_A4);
        else if (args[i].equals("-staple")) // Request stapling
            attributes.add(Finishings.STAPLE);
        else if (args[i].equals("-collate")) // Collate multiple copies
            attributes.add(SheetCollate.COLLATED);
        else if (args[i].equals("-duplex")) // Request 2-sided
            attributes.add(Sides.DUPLEX);
        else if (args[i].equals("-2")) // 2 pages to a sheet
            attributes.add(new NumberUp(2));
        else if (args[i].equals("-copies")) // how many copies
            attributes.add(new Copies(Integer.parseInt(args[++i])));
        else {
            System.out.println("Unknown argument: " + args[i]);
            System.exit(1);
        }
    }

    if (query) {
        // If the -q argument was specified, but no printer was named,
        // then list all available printers that can support the attributes
        if (printerName == null)
            queryServices(attributes);
        // Otherwise, look for a named printer that can support the
        // attributes and print its status
        else
            queryPrinter(printerName, attributes);
    } else if (outputFileName != null)
        // If this is not a query and we have a filename, print to a file
        printToFile(outputFileName, outputFileType, inputFileName, attributes);
    else
        // Otherwise, print to the named printer, or to the default
        // printer otherwise.
        print(printerName, inputFileName, attributes);

    // The main() method ends here, but there may be a printing thread
    // operating in the background. So the program may not terminate
    // until printing completes.
}