Drucken von Dokumenten in Java: Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Die Seite wurde neu angelegt: „der Flavor gibt an, um welches Dokument es sich handelt. hier ist die Hilfe dafür: {{JAPI|DocFlavor.INPUT_STREAM}} <code=java> import java.awt.GraphicsEnvironm…“ |
(kein Unterschied)
|
Version vom 27. Mai 2014, 08:22 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>
