der flavor gibt an um welches Dokument es sich handlet!
hier ist die Hilfe dafür: DocFlavor.INPUT_STREAM (Java 2 Platform SE v1.4.2)
hier ist die Hilfe dafür: DocFlavor.INPUT_STREAM (Java 2 Platform SE v1.4.2)
Java:
import javax.print.*;
import javax.print.attribute.*;
import java.io.*;
import javax.print.event.PrintJobListener;
import javax.print.event.PrintJobEvent;
import java.awt.GraphicsEnvironment;
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();
}
}
private 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!");
}
}