PDF ausdrucken

KlaDi

Erfahrenes Mitglied
Hallo,

wir haben mit FOP aus einem XML ein PDF erzeugt und wollen dieses nun von unserem Javaprogramm ausdrucken lassen.

Gibt es eine Möglichkeit mit Java 5 einen Ausdruck zu bekommen? Bisher haben wir keine Lösung gefunden, die uns das PDF ausdruckt, sondern immer nur Textdateien.

Gruß KlaDi.
 
Hallo,

Für XP
Runtime.getRuntime().exec("cmd.exe start /C acrord32 /p /h" + Yourpdf);

95/98
Runtime.getRuntime().exec("command.com /C start acrord32 /p /h" + Yourpdf);

das müsste klappen.

Grüße
R.
 
Hallo Ritchie,

danke erstmal für Deine Hilfe.

Leider tut sich da nur nix, wir haben es mit dem kompletten Pfad zum PDF und nur dem Namen des PDF ausprobiert, wir bekommen aber leider keinen Ausdruck. Als Plattform haben wir Windows XP, Eclipse 3.2, JDK 6.0 und Adobe Reader 7.0.

Ich hab auch mal nach dem Befehl gegoogelt, dabei fand ich raus, das auch andere dieses Problem haben.

Gibt es eine andere Möglichkeit oder muss ich den Befehl nur irgendwie abändern?

Außerdem habe ich was von: Acrobat's DDE interface gelesen. Danach suche ich gerade.

Gruß KlaDi.
 
Hallo,

es kann sein das du den vollständigen Pfad des reader angeben musst, wenn du diesen nicht in den PATH Einstellungen drin hast, dann müsste es eigentlich funktionieren.

z.b.

Code:
    	Runtime.getRuntime().exec("cmd.exe start /C C:\\Programme\\Adobe\\Acrobat_6_0\\Reader\\AcroRd32.exe /p /h c:\\WTable.pdf");

bei Leerzeichen in der Pfadangabe vorsichtig sein.

Grüße
R.
 
Hallo KlaDi,

würde JDIC empfehlen. Das wäre zum einen eine plattformunabhängige Lösung, und desweiteren Bedarf dieser keiner Angabe irgendwelcher Pfade.

Siehe Case# 3: Print a file if it's printable by launching the default content-handling application.:

Code:
import java.io.File;
import org.jdesktop.jdic.desktop.Desktop;
import org.jdesktop.jdic.desktop.DesktopException;

public class TestPrint {
    public static void main(String[] args) {
        File testFile = new File("C:\\temp\\test.txt");
        if(Desktop.isPrintable(testFile)) {
            try {
                Desktop.print(testFile);
            } catch (DesktopException e) {
                e.printStackTrace();
            }
        }
    }
}

Übrigens wurde dieses Feature neu in Java6 integriert.


Vg Erdal
 
Hallo flashray und Ritchie_Form,

vielen Dank für Eure Hilfen!

Leider kann ich das mit JDIC noch nicht ausprobieren, da ich zur Zeit Probleme mit dem Download habe, werde ich aber im Laufe des Tages sicher noch hinbekommen.

@flashray: Was meinst Du mit: Übrigens wurde dieses Feature in Java6 integriert? Das würde ja bedeuten ich brauche JDIC nicht runterladen oder irre ich mich da? Ich entwickle ja auf Java6.

Gruß KlaDi.

[EDIT]Also ich habe in mein Projekt die jdic.jar und die jdic_stub.jar importiert und hinzugefügt, aber einen Ausdruck bekomme ich leider trotzdem nicht. Leider auch irgendwie keine Fehlermeldung weder auf der Konsole noch in der .log-Datei.
Hatte nur zwischenzeitlich mal den Fehler das was mit dem java.library.path nicht stimmt.
 
Zuletzt bearbeitet:
Hallo KlaDi,

in deiner ersten Post steht Java 5 in deiner letzten das du Java 6 nutzt

Bei 5 brauchst du das JDIC, bei 6 nicht mehr da dieses wie gesagt in das jdk/jre integriert worden ist.


Vg Erdal
 
Also wir entwickeln auf Basis von Java 6. Sorry war ein Fehler von mir.

Wir bekommen es aber leider nicht hin, einen Ausdruck zu erzeugen.

Wir haben auch bisher auf der Seite von Sun in der Dokumentation zu Java 6 nichts gefunden, das darauf hindeutet, das jdic in Java 6 integriert ist.
Was muss man denn an Deinem Codeschnipsel ändern um die Funktionen von Java 6 zu nutzen und nicht die aus der jdic.jar.

Kann sich ja nur um die beiden imports handeln.

Gruß KlaDi.

[EDIT]So nach weiterem suchen, haben wir nun gefunden, das jdic in Java 6 integriert ist. Hier ist der Link dazu: http://www.sugd.de/sourcetalk_2006_presentations/trapp-jdk6-short.pdf. Auf Seite 10 ist jdic erstmals erwähnt. Durch das Codebeispiel haben wir es nun auch hinbekommen einen Ausdruck von unserem pdf zu bekommen. Danke nochmal an alle für die Hilfe!
Hier der Code um zu drucken:
Code:
import java.awt.Desktop;

public void erzeugeAusdruck() {
     File f = new File("C:\\test.pdf");
     
     if(Desktop.isDesktopSupported()) {
          Desktop dt = Desktop.getDesktop();
          try {      
              dt.print(new File(f);
          } catch (Exception ex) {
               ex.printStackTrace();
          }
     }
}
 
Zuletzt bearbeitet:
Zurück