我的问题类似于"How can I programmaticly open a pdf at a certain point?",但它是本地的,而不是在web服务器上。
我需要一种方法来跳转到用户计算机上的PDF中的给定页面,这是跨Acrobat的版本(或使用一个替代的PDF阅读器,如Foxit阅读器)。PDF将从Java应用程序中调用(它只在Windows上使用,所以跨平台不是必须的),现在它可以与:
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);显然,只有当最终用户使用32位的Acrobat 8,并将其安装在默认位置时,这才能起作用。接下来,我尝试使用:
rundll32 url.dll,FileProtocolHandler file:///C:/Program%20Files/Foo/Bar/Docs/RefMan.pdf#page=24以为这会打开用户浏览器并跳转到该页面,但它只是在页面1上打开了Acrobat。
所以我被难住了,并寻求帮助。
发布于 2009-04-08 21:45:02
最后,我通过使用this code调用reg.exe并解析来自HKLM\SOFTWARE\Classes.pdf的输出以查看它是否是AcroExch类来实现这一点,然后从call获取命令行
虽然有点老生常谈,但还是行得通。
https://stackoverflow.com/questions/730554
复制相似问题