Hi Forum
hoffe ihr hattet alle nen guten Start in die Woche.
Ich arbeite hier viel mit JasperReports. Das Problem dabei ist, dass neuere Versionen von JasperReports sehr grosse Grafiken (Diagramme) erstellen und wenn ein Report gedruckt werden soll schnell mal ein 500MB Druckjob erstellt wird, was eindeutig zu viel ist.
Nun dacht ich mir, dass ich einen Umweg über ein PDF File mache und dies dann ausdrucke.
Dies funktioniert grundsätzlich auch mit der Bibliothek jdic:
Das Problem dabei ist nun, dass man an den Acrobat gebunden ist, aber vor allem dass man nur auf den standard Drucker ausdrucken kann.
Gibt es keine Möglichkeit ein PDF direkt mit Java zu drucken, ohne ein externes Programm zu verwenden?
Das ganze bräuchte ich für Windows. Plattformunabhängig wär natürlich noch besser =)
Vielen Dank für eure Hilfe
jeipack
hoffe ihr hattet alle nen guten Start in die Woche.
Ich arbeite hier viel mit JasperReports. Das Problem dabei ist, dass neuere Versionen von JasperReports sehr grosse Grafiken (Diagramme) erstellen und wenn ein Report gedruckt werden soll schnell mal ein 500MB Druckjob erstellt wird, was eindeutig zu viel ist.
Nun dacht ich mir, dass ich einen Umweg über ein PDF File mache und dies dann ausdrucke.
Dies funktioniert grundsätzlich auch mit der Bibliothek jdic:
Java:
//-------- probieren direkt ein pdf zu erstellen -------------
JRSaveContributor saveContrib=null;
try
{
Class saveContribClass = JRClassLoader.loadClassForName("net.sf.jasperreports.view.save.JRPdfSaveContributor");
Method method = saveContribClass.getMethod("getInstance", (Class[])null);
saveContrib = (JRSaveContributor)method.invoke(null, (Object[])null);
}
catch (Exception e)
{
System.out.println("Fehler beim Erstellen des saveContrib Objekt:\n\r"+e);
}
File pdffile=null;
try {
pdffile = new File("c:\\temp.pdf");
// pdffile.createNewFile();
System.out.println("File kann geschrieben werden: "+pdffile.canWrite());
saveContrib.save(jp, pdffile);
} catch (Exception ex) {
System.out.println("Fehler beim schreiben des pdf Files:\n\r"+ex);
}
//und nun noch das pdffile ausdrucken
if(Desktop.isPrintable(pdffile)) {
try {
Desktop.print(pdffile);
} catch (Exception ex) {
System.out.println("Fehler beim drucken des dpf Files:\n\r"+ex);
}
}
Das Problem dabei ist nun, dass man an den Acrobat gebunden ist, aber vor allem dass man nur auf den standard Drucker ausdrucken kann.
Gibt es keine Möglichkeit ein PDF direkt mit Java zu drucken, ohne ein externes Programm zu verwenden?
Das ganze bräuchte ich für Windows. Plattformunabhängig wär natürlich noch besser =)
Vielen Dank für eure Hilfe
jeipack