Adobe有一个标准,理论上指定从在浏览器中单击的链接打开 PDF 文档,以打开 PDF 文档的特定部分(也称为“锚”、“命名参考”)。如果您想参考大型 PDF 的特定部分(例如某些标准或规范),此功能应该会有很大帮助。
但是,从我现在看到的情况来看,对这个标准的支持几乎不存在。
例如,这些链接应该在第 3.2.6 节“带注释的类型”中打开 Scala 参考 PDF:
- http://www.scala-lang.org/docu/files/ScalaReference.pdf#subsection.3.2.6
- http://www.scala-lang.org/docu/files/ScalaReference.pdf#nameddest=subsection.3.2.6
- 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,任何设置为作为单独进程运行 Adobe Acrobat Reader 的浏览器 - 不起作用
- Windows、任何浏览器、FoxIt Reader - 不工作
- Windows、任何浏览器、CutePDF - 不起作用
- Linux/Konqueror/Okular - 只有变体 #1 有效
- Linux,设置为运行 Okular 或任何其他 PDF 查看器作为外部进程的任何其他浏览器 - 不起作用(因为浏览器不会在命令行中传递任何“#arguments”)
- 任何操作系统、Firefox 15+ PDF.js 内部 PDF 查看器- 不起作用
如果您尝试使用各种不同的组合进行测试,我将不胜感激。