Hallo Zusammen,
ich möchte eine PDF Datei ausdrucken und habe dazu folgenden Code:
Den Code habe ich hier gefunden.
Leider bleibt das Array "printService" leer und dadurch bekomme ich eine Exception im Kommando service = ServiceUI.printDialog(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(),200,200,printService,defaultService,flavor,pras);
Habe jetzt schon ein bisschen rumprobiert und gegoogelt, jedoch bekomme ich das Problem nicht gelöst. Weiß jemand, warum keine Drucker gefunden werden? Es sind Netzwerkdrucker installiert.
Gruß
TDO
ich möchte eine PDF Datei ausdrucken und habe dazu folgenden Code:
Java:
MyPrintListener drucker = new MyPrintListener();
try {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//setzt das auszudruckend Dokument fest
DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF; //hier nachsehen, welches man benötigt!
PrintService[] printService = PrintServiceLookup.lookupPrintServices(
flavor, null);
PrintService defaultService = PrintServiceLookup.
lookupDefaultPrintService();
PrintService service = null;
int iDevice = -1;
//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];
}
}
String strFilename = "C:\\QS\\PDF\\14121583.pdf";
//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();
}
Den Code habe ich hier gefunden.
Leider bleibt das Array "printService" leer und dadurch bekomme ich eine Exception im Kommando service = ServiceUI.printDialog(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(),200,200,printService,defaultService,flavor,pras);
Habe jetzt schon ein bisschen rumprobiert und gegoogelt, jedoch bekomme ich das Problem nicht gelöst. Weiß jemand, warum keine Drucker gefunden werden? Es sind Netzwerkdrucker installiert.
Gruß
TDO