176 lines · 7.7 KB · Java
RawDownload
/* * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.print; import javax.print.attribute.PrintJobAttributeSet;import javax.print.attribute.PrintRequestAttributeSet;import javax.print.event.PrintJobAttributeListener;import javax.print.event.PrintJobListener;import javax.print.PrintException; /** * * This interface represents a print job that can print a specified * document with a set of job attributes.  An object implementing * this interface is obtained from a print service. * */ public interface DocPrintJob {     /**     * Determines the {@link PrintService} object to which this print job     * object is bound.     *     * @return  <code>PrintService</code> object.     *     */    public PrintService getPrintService();     /**     * Obtains this Print Job's set of printing attributes.     * The returned attribute set object is unmodifiable.     * The returned attribute set object is a "snapshot" of this Print Job's     * attribute set at the time of the {@link #getAttributes()} method     * call; that is, the returned attribute set's object's contents will     * not be updated if this Print Job's attribute set's contents change     * in the future. To detect changes in attribute values, call     * <code>getAttributes()</code> again and compare the new attribute     * set to the previous attribute set; alternatively, register a     * listener for print job events.     * The returned value may be an empty set but should not be null.     * @return the print job attributes     */     public PrintJobAttributeSet getAttributes();     /**     * Registers a listener for event occurring during this print job.     * If listener is null, no exception is thrown and no action is     * performed.     * If listener is already registered, it will be registered again.     * @see #removePrintJobListener     *     * @param listener  The object implementing the listener interface     *     */    public void addPrintJobListener(PrintJobListener listener);     /**     * Removes a listener from this print job.     * This method performs no function, nor does it throw an exception,     * if the listener specified by the argument was not previously added     * to this component. If listener is null, no exception is thrown and     * no action is performed. If a listener was registered more than once     * only one of the registrations will be removed.     * @see #addPrintJobListener     *     * @param listener  The object implementing the listener interface     */    public void removePrintJobListener(PrintJobListener listener);     /**     * Registers a listener for changes in the specified attributes.     * If listener is null, no exception is thrown and no action is     * performed.     * To determine the attribute updates that may be reported by this job,     * a client can call <code>getAttributes()</code> and identify the     * subset that are interesting and likely to be reported to the     * listener. Clients expecting to be updated about changes in a     * specific job attribute should verify it is in that set, but     * updates about an attribute will be made only if it changes and this     * is detected by the job. Also updates may be subject to batching     * by the job. To minimise overhead in print job processing it is     * recommended to listen on only that subset of attributes which     * are likely to change.     * If the specified set is empty no attribute updates will be reported     * to the listener.     * If the attribute set is null, then this means to listen on all     * dynamic attributes that the job supports. This may result in no     * update notifications if a job can not report any attribute updates.     *     * If listener is already registered, it will be registered again.     * @see #removePrintJobAttributeListener     *     * @param listener  The object implementing the listener interface     * @param attributes The attributes to listen on, or null to mean     * all attributes that can change, as determined by the job.     */    public void addPrintJobAttributeListener(                                  PrintJobAttributeListener listener,                                  PrintJobAttributeSet attributes);     /**     * Removes an attribute listener from this print job.     * This method performs no function, nor does it throw an exception,     * if the listener specified by the argument was not previously added     * to this component. If the listener is null, no exception is thrown     * and no action is performed.     * If a listener is registered more than once, even for a different     * set of attributes, no guarantee is made which listener is removed.     * @see #addPrintJobAttributeListener     *     * @param listener  The object implementing the listener interface     *     */    public void removePrintJobAttributeListener(                                      PrintJobAttributeListener listener);     /**     * Prints a document with the specified job attributes.     * This method should only be called once for a given print job.     * Calling it again will not result in a new job being spooled to     * the printer. The service implementation will define policy     * for service interruption and recovery.     * When the print method returns, printing may not yet have completed as     * printing may happen asynchronously, perhaps in a different thread.     * Application clients which  want to monitor the success or failure     * should register a PrintJobListener.     * <p>     * Print service implementors should close any print data streams (ie     * Reader or InputStream implementations) that they obtain     * from the client doc. Robust clients may still wish to verify this.     * An exception is always generated if a <code>DocFlavor</code> cannot     * be printed.     *     * @param doc       The document to be printed. If must be a flavor     *                                  supported by this PrintJob.     *     * @param attributes The job attributes to be applied to this print job.     *        If this parameter is null then the default attributes are used.     * @throws PrintException The exception additionally may implement     * an interface that more precisely describes the cause of the     * exception     * <ul>     * <li>FlavorException.     *  If the document has a flavor not supported by this print job.     * <li>AttributeException.     *  If one or more of the attributes are not valid for this print job.     * </ul>     */    public void print(Doc doc, PrintRequestAttributeSet attributes)          throws PrintException; }