Java by API/javax.print/DocPrintJob

Материал из Java эксперт
Перейти к: навигация, поиск

DocPrintJob: addPrintJobListener(PrintJobListener listener)

   <source lang="java">
 

import java.io.FileInputStream; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.SimpleDoc; import javax.print.attribute.DocAttributeSet; import javax.print.attribute.HashDocAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.event.PrintJobAdapter; import javax.print.event.PrintJobEvent; import javax.print.event.PrintJobListener; public class Main {

 public static void main(String args[]) throws Exception {
   String filename = args[0];
   DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
   PrintService printService = PrintServiceLookup
       .lookupDefaultPrintService();
   DocPrintJob job = printService.createPrintJob();
   PrintJobListener listener = new PrintJobAdapter() {
     public void printDataTransferCompleted(PrintJobEvent e) {
       System.out.println("Good-bye");
       System.exit(0);
     }
   };
   job.addPrintJobListener(listener);
   PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
   FileInputStream fis = new FileInputStream(filename);
   DocAttributeSet das = new HashDocAttributeSet();
   Doc doc = new SimpleDoc(fis, flavor, das);
   job.print(doc, pras);
   Thread.sleep(10000);
 }

}


 </source>
   
  
 
  



DocPrintJob: getAttributes()

   <source lang="java">
 

import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.OutputStream; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.StreamPrintService; import javax.print.StreamPrintServiceFactory; import javax.print.attribute.Attribute; import javax.print.attribute.HashPrintJobAttributeSet; import javax.print.attribute.PrintJobAttributeSet; import javax.print.attribute.standard.JobMediaSheetsCompleted; import javax.print.event.PrintJobAttributeEvent; import javax.print.event.PrintJobAttributeListener; public class Main {

 public static void main(String[] argv) throws Exception {
   OutputStream fos = new BufferedOutputStream(new FileOutputStream("filename.ps"));
   DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
   StreamPrintServiceFactory[] factories = StreamPrintServiceFactory
       .lookupStreamPrintServiceFactories(flavor, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());
   StreamPrintService service = factories[0].getPrintService(fos);
   DocPrintJob job = service.createPrintJob();
   PrintJobAttributeSet set = new HashPrintJobAttributeSet(job.getAttributes());
   set.add(new JobMediaSheetsCompleted(0));
   job.addPrintJobAttributeListener(new MyPrintJobAttributeListener(), set);
 }

} class MyPrintJobAttributeListener implements PrintJobAttributeListener {

 public void attributeUpdate(PrintJobAttributeEvent pjae) {
   Attribute[] attrs = pjae.getAttributes().toArray();
   for (int i = 0; i < attrs.length; i++) {
     String attrName = attrs[i].getName();
     String attrValue = attrs[i].toString();
   }
 }

}


 </source>
   
  
 
  



DocPrintJob: print(Doc doc, PrintRequestAttributeSet attributes)

   <source lang="java">

import java.io.FileInputStream; import java.io.IOException; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintException; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.SimpleDoc; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.Copies; public class PrintImage {

 static public void main(String args[]) throws Exception {
   try {
     PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
     pras.add(new Copies(1));
     PrintService pss[] = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
     if (pss.length == 0)
       throw new RuntimeException("No printer services available.");
     PrintService ps = pss[0];
     System.out.println("Printing to " + ps);
     DocPrintJob job = ps.createPrintJob();
     FileInputStream fin = new FileInputStream("YOurImageFileName.PNG");
     Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);
     job.print(doc, pras);
     fin.close();
   } catch (IOException ie) {
     ie.printStackTrace();
   } catch (PrintException pe) {
     pe.printStackTrace();
   }
 }

}


 </source>