Manera de saltar a una página en un pdf?
Pregunta
Mi pregunta es similar a "¿Cómo puedo programmaticly abrir un archivo pdf en un cierto punto?", pero el PDF es local, y no en un servidor web.
Necesito una manera de saltar a una página determinada en un PDF que está en el ordenador de los usuarios, que funciona a través de las versiones de Acrobat (o el uso de una alternativa visor de PDF como Foxit Reader).El PDF es el que va a ser llamada desde una aplicación Java (sólo se utiliza en Windows, por lo que la cruz-plataforma no es una obligación), y ahora trabaja con:
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);
Obviamente, esto sólo funcionará si el usuario final es el uso de Acrobat 8 de 32 bits, y se ha instalado en la ubicación predeterminada.Me próximo intentado usar:
rundll32 url.dll,FileProtocolHandler file:///C:/Program%20Files/Foo/Bar/Docs/RefMan.pdf#page=24
pensando que esto iba a abrir el navegador del usuario y saltar a la página, pero simplemente abrió Acrobat en la página 1.
Así que estoy stumpped, y pidiendo ayuda.
Solución
Terminé la implementación de este mediante el uso de este código para llamar reg.exe y analizar el resultado de HKLM\SOFTWARE\Classes.pdf para ver si se trata de la AcroExch de la clase, a continuación, obtener la línea de comandos de HKLM\SOFTWARE\Classes\AcroExch.Documento\Shell\Open\Command.
Su chapucero pero funciona.