Adobe有一个标准,理论上指定从浏览器中单击的链接打开PDF文档,以打开PDF文档的特定部分(AKA"锚点","命名参考").如果想要引用大型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
(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查看器 - 都不起作用
如果您尝试以各种不同的组合进行测试,我将不胜感激.