33

Adobe有一个标准,理论上指定从在浏览器中单击的链接打开 PDF 文档,以打开 PDF 文档的特定部分(也称为“锚”、“命名参考”)。如果您想参考大型 PDF 的特定部分(例如某些标准或规范),此功能应该会有很大帮助。

但是,从我现在看到的情况来看,对这个标准的支持几乎不存在。

例如,这些链接应该在第 3.2.6 节“带注释的类型”中打开 Scala 参考 PDF:

  1. http://www.scala-lang.org/docu/files/ScalaReference.pdf#subsection.3.2.6
  2. http://www.scala-lang.org/docu/files/ScalaReference.pdf#nameddest=subsection.3.2.6
  3. http://www.scala-lang.org/docu/files/ScalaReference.pdf#page=23

(从技术上讲,变体 #3 应该打开第 23 页,这基本上是相同的目的地)

有没有一种工作方式(可能是几个垫片、专有包装器或其他任何东西)可以在大多数系统上进行这项工作?Adobe Reader 插件的使用份额是多少,我应该关心其他系统吗?

如果不可能,至少我想为每个平台(即 Windows、Linux、Mac)找到一个可行的解决方案,如果他们希望能够使用命名的目标链接,我可以向我的站点用户推荐这些解决方案。

根据我的测试:

  • Windows、MSIE/Firefox/Chrome、Adobe Acrobat Reader 插件 - 所有变体都适用于版本 9+,但是:
    • MSIE 有一个奇怪的缓存问题(即锚在文档被缓存之前不起作用)
    • 旧版本不起作用
    • 它有链接格式的问题:一般来说,它应该是到真实 Web 服务器的常规绝对链接,以“http://”开头。\\HOST\dir\file.pdf#something相对链接、 samba风格链接(
  • Windows,任何设置为作为单独进程运行 Adob​​e Acrobat Reader 的浏览器 - 不起作用
  • Windows、任何浏览器、FoxIt Reader - 不工作
  • Windows、任何浏览器、CutePDF - 不起作用
  • Linux/Konqueror/Okular - 只有变体 #1 有效
  • Linux,设置为运行 Okular 或任何其他 PDF 查看器作为外部进程的任何其他浏览器 - 不起作用(因为浏览器不会在命令行中传递任何“#arguments”)
  • 任何操作系统、Firefox 15+ PDF.js 内部 PDF 查看器- 不起作用

如果您尝试使用各种不同的组合进行测试,我将不胜感激。

4

1 回答 1

16

通常似乎起作用的是变体#4,但在这种情况下,使用页码作为实际划分为PDF文档中的页面

http://www.scala-lang.org/docu/files/ScalaReference.pdf#page=31

PDF 文档的页码从正确的内容开始,在目录之后,但该编号与 #page=... 中使用的编号不同

于 2012-11-17T09:15:35.513 回答