【问题标题】:Way of jumping to a page in a local pdf?跳转到本地pdf页面的方式?
【发布时间】:2010-10-18 08:23:53
【问题描述】:

我的问题类似于"How can I programmaticly open a pdf at a certain point?",但 PDF 是本地的,而不是在网络服务器上。

我需要一种方法来跳转到用户计算机上的 PDF 中的给定页面,该方法适用于 Acrobat 版本(或使用替代 PDF 查看器,如 Foxit Reader)。 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。

所以我很困惑,并寻求帮助。

【问题讨论】:

    标签: java pdf acrobat


    【解决方案1】:

    我最终通过使用this code 调用 reg.exe 并解析 HKLM\SOFTWARE\Classes.pdf 的输出来查看它是否是 AcroExch 类,然后从 HKLM\SOFTWARE\Classes\ 获取命令行来实现这一点AcroExch.Document\Shell\Open\Command.

    它很老套,但它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多