从网页链接到 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,任何设置为将 Adobe Acrobat Reader 作为单独进程运行的浏览器 - 都不起作用
Windows、任何浏览器、FoxIt Reader - 不起作用
Windows、任何浏览器、CutePDF - 不起作用
Linux/Konqueror/Okular - 只有变体 #1 有效
Linux,设置为运行 Okular 或任何其他 PDF 查看器作为外部进程的任何其他浏览器 - 不起作用(因为浏览器不会在命令行中传递任何“#arguments”)
任何操作系统,Firefox 15+ PDF.js internal PDF viewer - 不工作
如果您能尝试以各种不同的组合进行测试,我将不胜感激。
【问题讨论】:
基本问题可能是您所谓的 Adobe 标准 实际上只是 Adobe Acrobat SDK 的 指南 i> 可以追溯到 2007。虽然 2008 年的 PDF 参考实际上(主要仅进行了编辑更改)成为了 ISO 标准,但该 URL 指南 AFAIK 并没有同样提升。因此,该指南仅与 Adobe Acrobat & Reader 及其浏览器集成相关(甚至可能以过时的方式与它们相关)。任何其他 PDF 查看器可能已经采用了其中的一些机制,但它们也可能有自己的寻址机制或根本没有。 关于“Windows,任何设置为作为单独进程运行 Adobe 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 文档中的特定部分(锚点)的主要内容,如果未能解决你的问题,请参考以下文章