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

Posted

技术标签:

【中文标题】从网页链接到 PDF 文档中的特定部分(锚点)【英文标题】:Linking from a web page to a specific section (anchor) in PDF document 【发布时间】:2012-11-05 19:27:28 【问题描述】:

有一个standard from 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 有一个奇怪的缓存问题(即,在缓存文档之前,锚点不起作用) 旧版本无法使用 它有issues with link format:一般来说,它应该是一个真正的Web服务器的常规绝对链接,以“http://”开头。相对链接、samba 风格链接 (\\HOST\dir\file.pdf#something),除了“http”(或者可能是“https”)方案之外的任何其他内容都不起作用 Windows,任何设置为将 Adob​​e Acrobat Reader 作为单独进程运行的浏览器 - 都不起作用 Windows、任何浏览器、FoxIt Reader - 不起作用 Windows、任何浏览器、CutePDF - 不起作用 Linux/Konqueror/Okular - 只有变体 #1 有效 Linux,设置为运行 Okular 或任何其他 PDF 查看器作为外部进程的任何其他浏览器 - 不起作用(因为浏览器不会在命令行中传递任何“#arguments”) 任何操作系统,Firefox 15+ PDF.js internal PDF viewer - 不工作

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

【问题讨论】:

基本问题可能是您所谓的 Adob​​e 标准 实际上只是 Adob​​e Acrobat SDK 的 指南 i> 可以追溯到 2007。虽然 2008 年的 PDF 参考实际上(主要仅进行了编辑更改)成为了 ISO 标准,但该 URL 指南 AFAIK 并没有同样提升。因此,该指南仅与 Adob​​e Acrobat & Reader 及其浏览器集成相关(甚至可能以过时的方式与它们相关)。任何其他 PDF 查看器可能已经采用了其中的一些机制,但它们也可能有自己的寻址机制或根本没有。 关于“Windows,任何设置为作为单独进程运行 Adob​​e Acrobat Reader 的浏览器”:AFAIK 作为一个单独的进程,这些程序由浏览器打开,只有下载的 PDF 副本的路径.因此,他们根本没有机会到达想要的位置。 【参考方案1】:

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

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

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

【讨论】:

已为此创建了一个 JIRA 问题:issues.alfresco.com/jira/browse/MNT-12709 请投票! 哇,谢谢 Jukka!这对我很有帮助。我花了很多时间在 pdf 上。你是怎么想到的?

以上是关于从网页链接到 PDF 文档中的特定部分(锚点)的主要内容,如果未能解决你的问题,请参考以下文章

页面添加锚点的三种方式

怎么样在HTML页面上添加锚点啊?

链接到javascript源中的特定行?

JavaFX WebView:使用loadContent()链接到文档中的锚点不起作用

使用 Laravel 链接到页面上的特定锚点

链接中的锚点