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

时间:2012-11-17 03:14:59

标签: html pdf hyperlink anchor

理论上有一个standard from 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
  4. (Techincally,变体#3应该打开第23页,它基本上是同一个目的地)

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

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

    从我测试的内容:

    • Windows,MSIE / Firefox / Chrome,Adobe Acrobat Reader插件 - 所有版本均适用于版本9+,但是:
      • MSIE有一个奇怪的缓存问题(即在缓存文档之前锚不起作用)
      • 旧版本不起作用
      • 它有issues with link format:通常,它应该是与真实Web服务器的常规绝对链接,以“http://”开头。相对链接,桑巴风格链接(\\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 internal PDF viewer - 无法正常工作

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

1 个答案:

答案 0 :(得分:14)

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

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

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

中使用的编号不同