Hallo,
wieder einmal habe ich ein Problem, das vom Thema her eigentlich oft auftreten sollte, die Webrecherche allerdings gar nichts ergab.
Simple Aufgabe:
Ein PDF öffnen und zu öffnen und zu einem Lesezeichen (nameddest springen).
Kann wegen mir auch den Acrobat Reader erfordern, muss aber nicht. Plattformabhängigkeit bzw sauberer Code wäre wichtiger.
So etwas funktioniert auf meinem System, möchte ich aber natürlich vermeiden
Das bringt auch nichts, weil ich keine Paramter übergeben kann und plattformabhängig:
Das schreit doch nach der Desktop Klasse.
Desktop.open() habe ich wieder das Parameterproblem.
Das öffnet nicht wie in der JavaDoc beschrieben den Browser, aber wie den Standard-Reader bzw Acrobat. Das passt auch so.
Problem: Der Parameter kommt nicht an.
Gebe ich die gleiche url (z.B. uri.toString() in meinen Browser ein wird zu Seite 2 gesprungen (statt #page=2 soll es einmal #sprungmarke werden).
Ist das nicht sogar ein Bug der JVM oder vom Betriebssystem wenn die Parameter nicht weitergeleitet werden?
Hinweise:
Dem Acrobat Reader kann ich sowohl als Paramteraufruf a la
acrobat.exe /A "page=2" "C:\meinpdf.pdf"
als auch als url ala
File://meinpfad/meinpdf.pdf#page=2
Parameter/Lesezeichen übergeben.
Jemand eine Idee?
Oder doch mit der ersten gelisteten Variante realisieren
wieder einmal habe ich ein Problem, das vom Thema her eigentlich oft auftreten sollte, die Webrecherche allerdings gar nichts ergab.
Simple Aufgabe:
Ein PDF öffnen und zu öffnen und zu einem Lesezeichen (nameddest springen).
Kann wegen mir auch den Acrobat Reader erfordern, muss aber nicht. Plattformabhängigkeit bzw sauberer Code wäre wichtiger.
So etwas funktioniert auf meinem System, möchte ich aber natürlich vermeiden
Java:
Runtime.getRuntime().exec("cmd.exe /c start acrord32.exe /A \"page=2\" \"pfad\meinpdf.pdf\");
Das bringt auch nichts, weil ich keine Paramter übergeben kann und plattformabhängig:
Java:
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + path);
Runtime.getRuntime().exec("cmd.exe /c start " + path);
Das schreit doch nach der Desktop Klasse.
Desktop.open() habe ich wieder das Parameterproblem.
Java:
Desktop desktop = Desktop.getDesktop();
try {
String path = file.toURI().toString + "#page=2";
URI uri = new URI(path);
desktop.browse(uri);
} catch (Exception e) { e.printStackTrace();}
Das öffnet nicht wie in der JavaDoc beschrieben den Browser, aber wie den Standard-Reader bzw Acrobat. Das passt auch so.
Problem: Der Parameter kommt nicht an.
Gebe ich die gleiche url (z.B. uri.toString() in meinen Browser ein wird zu Seite 2 gesprungen (statt #page=2 soll es einmal #sprungmarke werden).
Ist das nicht sogar ein Bug der JVM oder vom Betriebssystem wenn die Parameter nicht weitergeleitet werden?
Hinweise:
Dem Acrobat Reader kann ich sowohl als Paramteraufruf a la
acrobat.exe /A "page=2" "C:\meinpdf.pdf"
als auch als url ala
File://meinpfad/meinpdf.pdf#page=2
Parameter/Lesezeichen übergeben.
Jemand eine Idee?
Oder doch mit der ersten gelisteten Variante realisieren
Zuletzt bearbeitet: