/************************************************************************** /* This class demonstrates the Java Printing Service. /* /* Copyright (c) 2004 by Bernhard Bablok (mail@bablokb.de) /* /* 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 2 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; see the file COPYING. If not, write to /* the Free Software Foundation Inc., 59 Temple Place - Suite 330, /* Boston, MA 02111-1307 USA /**************************************************************************/ import java.io.*; import java.net.*; import javax.print.*; import javax.print.attribute.*; import javax.print.attribute.standard.*; import de.lohndirekt.print.*; /** This class demonstrates the Java Printing Service. @version $Revision: 1.1 $ @author $Author: bablokb $ */ public class PrintDemo{ private static final String CUPS_URI = "ipp://localhost:631"; ////////////////////////////////////////////////////////////////////////////// /** Register IPP-Service. */ private void registerService() throws Exception { PrintServiceLookup psl = new IppPrintServiceLookup(new URI(CUPS_URI),null,null); PrintServiceLookup.registerServiceProvider(psl); } ////////////////////////////////////////////////////////////////////////////// /** Print the document. */ private void printDocument(String filename) throws Exception { DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); attributes.add(MediaSizeName.ISO_A4); PrintService[] pservices = PrintServiceLookup.lookupPrintServices(null,null); if (pservices.length > 0) { DocPrintJob pj = pservices[0].createPrintJob(); FileInputStream stream = new FileInputStream(filename); Doc doc = new SimpleDoc(stream,flavor,null); pj.print(doc,attributes); } else { System.out.println("no printers available"); } } ////////////////////////////////////////////////////////////////////////////// public static void main(String[] args) { if (args.length != 1) usage(); PrintDemo p = new PrintDemo(); try { p.registerService(); p.printDocument(args[0]); } catch (Exception e) { e.printStackTrace(); } } ////////////////////////////////////////////////////////////////////////////// /** Print usage info and exit. */ private static void usage() { System.out.println("usage: java " + PrintDemo.class.getName() + " filename"); System.exit(3); } }