Drucken von Dokumenten in Java: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 124: Zeile 124:
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
[[Kategorie:Java]]
+
[[Kategorie:Java-Codeschnipsel]]
  
 
--[[Benutzer:thE_29]] 24.08.2004, 15:50
 
--[[Benutzer:thE_29]] 24.08.2004, 15:50

Version vom 27. Mai 2014, 08:25 Uhr

der Flavor gibt an, um welches Dokument es sich handelt.

hier ist die Hilfe dafür: DocFlavor.INPUT_STREAM

<code=java> import java.awt.GraphicsEnvironment; 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.ServiceUI; 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.PrintJobListener;

import javax.print.event.PrintJobEvent;

public class PrintDocument {

   private MyDruckListener drucker = new MyDruckListener();
   public PrintDocument(String strFilename, int iDevice) {
       try {
           PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
           //setzt das auszudruckend Dokument fest
           DocFlavor flavor = DocFlavor.INPUT_STREAM.XXX; //hier nachsehen, welches man benötigt!
           PrintService printService[] = PrintServiceLookup.lookupPrintServices(
                   flavor, pras);
           PrintService defaultService = PrintServiceLookup.
                   lookupDefaultPrintService();
           PrintService service = null;
           //wenn als Device -1 übergeben wird, wird ein Dialog für das drucken auswählen ausgegeben!
           if (iDevice == -1) {
               service = ServiceUI.printDialog(GraphicsEnvironment.
                       getLocalGraphicsEnvironment().
                       getDefaultScreenDevice().
                       getDefaultConfiguration(), 200, 200,
                       printService, defaultService, flavor, pras);
           } 
           //ansonsten wird der 1te (Standard/Default) Drucker genommen
           else {
               //wenn es keine Drucker gibt und das Device niedriger ist als die Länge
               if (printService != null && printService.length != 0 && printService.length > iDevice) {
                   service = printService[iDevice];
               } 
               //ansonsten standarddevice
               else if (printService != null && printService.length != 0) {
                   service = printService[0];
               }
           }
           //wenn der Dateiename null ist, wird die Druckfunktion beendet!
           if (strFilename == null) {
               return;
           }
           //wenn der Service nicht null ist, wird ausgedruckt
           if (service != null) {
               DocPrintJob job = service.createPrintJob();
               //fügt listener hinzu
               job.addPrintJobListener(drucker);
               FileInputStream fis = new FileInputStream(strFilename);
               DocAttributeSet das = new HashDocAttributeSet();
               Doc doc = new SimpleDoc(fis, flavor, das);
               job.print(doc, pras);
           }
       } //wenn kein Druckerdevice gefunden wurde!!
       catch (ArrayIndexOutOfBoundsException ex) {
           ex.printStackTrace();
           System.out.println("Keine Drucker gefunden!!");
       } 
       //bei sonstigen Exceptions!
       catch (Exception ex) {
           ex.printStackTrace();
       }
   }
   class MyDruckListener implements PrintJobListener {
       public void printDataTransferCompleted(PrintJobEvent printJobEvent) {
           System.out.println("Daten wurden zum Drucker geschickt!");
       }
       public void printJobCompleted(PrintJobEvent printJobEvent) {
           System.out.println("Drucker hat fertig gedruckt!");
       }
       public void printJobFailed(PrintJobEvent printJobEvent) {
           System.out.println("Fehler beim Drucken!");
       }
       public void printJobCanceled(PrintJobEvent printJobEvent) {
           System.out.println("Abbruch des druckes!");
       }
       public void printJobNoMoreEvents(PrintJobEvent printJobEvent) {
           System.out.println("JobNoMoreEvents!");
       }
       public void printJobRequiresAttention(PrintJobEvent printJobEvent) {
           System.out.println("JobRequieresAttention!");
       }
   }

}

</code=java>

--Benutzer:thE_29 24.08.2004, 15:50