PostscriptPrinter.java

00001 package edu.stanford.hci.r3.printing.types;
00002 
00003 import java.io.File;
00004 import java.io.FileInputStream;
00005 import java.io.FileNotFoundException;
00006 
00007 import javax.print.Doc;
00008 import javax.print.DocFlavor;
00009 import javax.print.DocPrintJob;
00010 import javax.print.PrintException;
00011 import javax.print.PrintService;
00012 import javax.print.PrintServiceLookup;
00013 import javax.print.ServiceUI;
00014 import javax.print.SimpleDoc;
00015 import javax.print.attribute.DocAttributeSet;
00016 import javax.print.attribute.HashDocAttributeSet;
00017 import javax.print.attribute.HashPrintRequestAttributeSet;
00018 import javax.print.attribute.PrintRequestAttributeSet;
00019 
00020 import edu.stanford.hci.r3.printing.Printer;
00021 import edu.stanford.hci.r3.util.DebugUtils;
00022 
00034 public class PostscriptPrinter extends Printer {
00035 
00039         public PostscriptPrinter(PrintService serv) {
00040                 super(serv);
00041         }
00042 
00051         public static void printPostscriptFileToDefaultPrinter(File psFile) {
00052                 final PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
00053                 final DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
00054                 // DebugUtils.println("Looking up Services");
00055                 final PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
00056                 // DebugUtils.println("Looking up Default Service");
00057                 final PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
00058                 DebugUtils.println("Starting Printing Service UI");
00059                 final PrintService service = ServiceUI.printDialog(null, 200, 200, printService,
00060                                 defaultService, flavor, pras);
00061                 if (service != null) {
00062                         // DebugUtils.println("Creating Print Job");
00063                         final DocPrintJob job = service.createPrintJob();
00064                         FileInputStream fis = null;
00065                         try {
00066                                 fis = new FileInputStream(psFile);
00067                         } catch (FileNotFoundException e) {
00068                                 e.printStackTrace();
00069                         }
00070                         final DocAttributeSet das = new HashDocAttributeSet();
00071                         final Doc doc = new SimpleDoc(fis, flavor, das);
00072 
00073                         try {
00074                                 DebugUtils.println("Printing");
00075                                 job.print(doc, pras);
00076                         } catch (PrintException e) {
00077                                 e.printStackTrace();
00078                         }
00079                 }
00080         }
00081 }

Generated on Sat Apr 14 18:21:37 2007 for R3 Paper Toolkit by  doxygen 1.4.7