Öffnen und schließen von Pdf-Files

bluer

Aktives Mitglied
Hi,

ich schreibe gerade ein kleines programm, das mir mit hilfe eines timers in einem bestimmten intervall immer ein bestimmtes pdf file öffnet, dies mache ich so:

Java:
javax.swing.Action timeraction = new javax.swing.AbstractAction() {
        public void actionPerformed(java.awt.event.ActionEvent evt){
            // hier soll die aktuell geöffnete Datei geschlossen werden, bevor sie erneut geöffnet wird
            desk = java.awt.Desktop.getDesktop();
            desk.open(new java.io.File(actfilepath+"copy.pdf"));
        }
    };

ich brauche das ganze, weil ich gerade meine bachelorarbeit mit LaTeX schreibe und ich gerne simultan immer gleich das compilierte textopdf file sehen möcht, um eventuelle fehler gleich zu erkennen. leider hat java.awt.Desktop keine methode close o.ä.
gibt es noch eine andere möglichkeit pdf file währrend der laufzeit zu öffnen mit der ich die geöffnete datei auch wieder schließen kann?

mfg
 
Jetzt packe ich mal ein wenige Perversität aus:
Du könntest über JNA und User32.dll unter der Verwendung der Funktion FindWindow das Program am Namen in der Titelbar erkennen und dann wiederum aus der dll die CloseWindow Methode verwenden.
Beachte aber, dass er am besten nicht auf die Datei zugreift, wenn gerade Latex die pdf erzeugt.

Edit: Mist..CloseWindow macht nur ein Minimieren und DestroyWindow darf man nicht von außen auf ein anderes Programm jagen.
-> Dann fällt mir dazu gerade nix ein.
 
Zuletzt bearbeitet:
Java Native Access heißt es. Aber wie schon im Edit geschrieben, wirds dir so wie oben beschrieben auch nicht helfen.
 
Du könntest das PDF in einer eigenen Applikation mit dem PDFRenderer anzeigen. Dann hast Du auch volle Kontrolle über Aktualisierungen ohne Notwendigkeit externe Programme irgendwie abzuschießen. Das dürfte nämlcih schwer werden.
 
Könntest du nicht auch einfach eine TeX-IDE nehmen? Zumindest einige davon sollten das gewünschte Feature bieten.
 
@Guybrush Threepwood
thx, damit funktionierts!!!!
öffne einfach ein neues frame und lass die seiten entsprechend anzeigen!!!
vielen dank!!!
 

Zurück
Oben