Java 인쇄 서비스 API 사용자 가이드-예:PrintGIF.java - xrath.com 에서 번역됨

목차 | 전의 항목 | 다음의 항목 | JavaTM 인쇄 서비스 API 사용자 가이드

# 부록 F

# 예:PrintGIF.java

>     /*
>     * Copyright 2001 Sun Microsystems, Inc.  All Rights Reserved.
>     *
>     * This software is the proprietary information of Sun Microsystems, Inc.
>     * Use is subject to license terms.
>     *
>     */

>     import java.io. *;
>     import javax.print. *;
>     import javax.print.attribute. *;
>     import javax.print.attribute.standard. *;

>     /*
>     *  Use the Java(TM) Print Service API to locate a print service which
>     *  can print a GIF-encoded image.  A GIF image is printed according to
>     *  a job template specified as a set of printing attributes.
>     */
>     public class PrintGIF {

>     	public static void main(String args[]) {

>     		/* Use the pre-defined flavor for a GIF from an InputStream */
>     		DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;

>     		/* Create a set which specifies how the job is to be printed */
>     		PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
>     		aset.add(MediaSizeName.NA_LETTER);
>     		aset.add(new Copies(1));

>     		/* Locate print services which can print a GIF in the manner specified */
>     		PrintService[] pservices =
>     			PrintServiceLookup.lookupPrintServices(flavor, aset);

>     		if (pservices.length > 0) {
>     			/* Create a Print Job */
>     			DocPrintJob printJob = pservices[0]. createPrintJob();

>     			/* Create a Doc implementation to pass the print data */
>     			Doc doc = new InputStreamDoc("java2dlogo.gif", flavor);

>     			/* Print the doc as specified */
>     			try {
>     				printJob.print(doc, aset);
>     			} catch (PrintException e) {
>     				System.err.println(e);
>     			}
>     		} else {
>     			System.err.println("No suitable printers");
>     		}
>     	}
>     }

>     class InputStreamDoc implements Doc {
>     	private String filename;
>     	private DocFlavor docFlavor;
>     	private InputStream stream;

>     	public InputStreamDoc(String name, DocFlavor flavor) {
>     		filename = name;
>     		docFlavor = flavor;
>     	}

>     	public DocFlavor getDocFlavor() {
>     		return docFlavor;
>     	}

>     	/* No attributes attached to this Doc - mainly useful for MultiDoc */
>     	public DocAttributeSet getAttributes() {
>     		return null;
>     	}

>     	/* Since the data is to be supplied as an InputStream delegate to
>     	* getStreamForBytes().
>     	*/
>     	public Object getPrintData() throws IOException {
>     		return getStreamForBytes();
>     	}

>     	/* Not possible to return a GIF as text */
>     	public Reader getReaderForText()
>     		throws UnsupportedEncodingException, IOException {
>        	return null;
>     	}

>     	/* Return the print data as an InputStream.
>     	* Always return the same instance.
>     	*/
>     	public InputStream getStreamForBytes() throws IOException {
>     		synchronized(this) {
>     			if (stream == null) {
>     				stream = new FileInputStream(filename);
>     			}
>     			return stream;
>     		}
>     	}
>     }

목차 | 전의 항목 | 다음의 항목

Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.