Frage

Meine Frage ist ähnlich "Wie kann ich programmaticly öffnen einer pdf-Datei an einer bestimmten Stelle?", aber die PDF-Datei ist lokal, nicht auf einem web-server.

Ich brauche einen Weg, um das springen zu einer bestimmten Seite in einer PDF-Datei, die auf dem computer des Nutzers, die über Acrobat-Versionen (oder ein alternativer PDF-viewer wie der Foxit Reader).Die PDF genannt wird von einer Java-app (es werden nur verwendet auf Windows, so dass cross-Plattform ist nicht ein muss), und jetzt funktioniert es mit:

int pageNum = 24;
String manualPath = "C:\\Program Files\\Foo\\Bar\\Docs\\RefMan.pdf";
String acrordPath = "C:\\Program Files\\Adobe\\Reader 8.0\\Reader\\AcroRd32.exe";
String cmdString = "\"" + acrordPath + \" /A \"page=" + pageNum + 
    "=OpenActions\" \"" + manualPath + \"";
Process p = Runtime.getRuntime().exec(cmdString);

Natürlich wird dies nur funktionieren, wenn die Ende Benutzer ist, die mit Acrobat 8 für 32-bit und installiert es in den Standard-Speicherort.Ich habe weiter versucht, mit:

rundll32 url.dll,FileProtocolHandler file:///C:/Program%20Files/Foo/Bar/Docs/RefMan.pdf#page=24

denken Sie, dass dies öffnet den Benutzer-browser, und springen Sie zu dieser Seite, aber es einfach geöffnet Acrobat auf Seite 1.

Also ich bin stumpped, und um Hilfe zu bitten.

War es hilfreich?

Lösung

Ich landete die Umsetzung dieser durch die Verwendung dieser code anrufen reg.exe und durchsuchen Sie die Ausgabe von HKLM\SOFTWARE\Classes.pdf zu sehen, wenn Ihr die AcroExch Klasse, dann bekommen Sie den Befehl Linie aus HKLM\SOFTWARE\Classes\AcroExch.Document\Shell\Open\Command.

Seine hacky, aber es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top