从网页链接到PDF文档中的特定部分(锚点)

Gre*_*Cat 29 html pdf anchor hyperlink

Adobe有一个标准,理论上指定从浏览器中单击的链接打开PDF文档,以打开PDF文档的特定部分(AKA"锚点","命名参考").如果想要引用大型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

(Techincally,变体#3应该打开第23页,它本质上是相同的目的地)

是否有一种工作方式(可能有几个垫片,专有包装或其他任何东西)使这个工作在大多数系统上?如果我关心其他系统,Adobe Reader插件的使用份额是多少?

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

从我测试过:

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

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

Juk*_*ela 14

一般似乎工作的是变体#4,但使用页面编号作为实际划分为PDF文档中的页面,在这种情况下

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

PDF文档的页码从内容表后面的内容开始,但该编号与#page = ...中使用的编号不同