pdf - PDF 文件中的参数“Nameddest”
问题描述
我想通过 nameddest 参数在特定书签/大纲位置打开 PDF。例如,以下链接在书签“内容”处打开 PDF:
以下链接在书签“参数”处打开文件: https ://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf#nameddest=Parameters
以下链接还会在“参数”书签处打开文件: https ://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf#nameddest=G4.1501771
从上面的例子中,为什么nameddest=G4.150177?
如果我已经有一个 PDF 文件,如何检索 nameddest 参数的所有可能值?
PDF 文件中是否有一个部分可以检索所有书签,以便可以在 nameddest 参数中使用它们?
我知道书签部分中显示的名称可能与其实际目的地不同(PDF 规范https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf#nameddest =G4.1501771 )
解决方案
首先,这些参数并非在每个浏览器中都有效。例如,Safari 不尊重它们。它只是打开到第一页。
其次,Chrome 确实尊重这些参数,但认为 PDF 书签和命名目标是一回事。因此,命名目的地“G4.1501771”和书签“参数”最终会到达同一个地方。PDF 书签和命名目的地实际上是不同的东西。命名目的地始终是文档中的一个位置。PDF 书签可以有任意数量的与之关联的动作,其中之一是去一个特定的位置。
为什么nameddest=G4.150177?
因为 PDF 是在 Adobe FrameMaker 中创建的,而 FrameMaker 会根据标题自动放入命名目标。我敢肯定它们不是随机的名字,但它们确实看起来像。
PDF 文件中是否有一个部分可以检索所有书签,以便可以在 nameddest 参数中使用它们?
大多数 PDF 查看器会列出书签,但 Adobe Acrobat 会同时列出书签和命名目标。如果您想以编程方式执行此操作,书签树是文档目录中的一个字典,可以通过许多不同的 PDF API 访问。
推荐阅读
- c# - 如何在 Blazor WebAssembly 中登录时运行代码?
- python - 如何使用 BeautifulSoup 库获取所有带有“titular”类的标签?
- javascript - 正文结束前的脚本和文件加载之间的差异
- php - Debian命令行中的Provoque“无法打开文件”php
- python - 在 VS Code 中打开项目文件夹时如何自动激活 python 虚拟环境?
- javascript - webpack 正在关注 node_modules/micromatch/index.js:44 的变化
- database - 具有数百个只读副本的分布式数据库,可以通过 HTTP 异步同步
- oozie - 将 Oozie 作业的 SLA 设置为 WAITING 状态
- python-3.x - TypeError:无法将系列转换为
- c# - 如何使用 32feet.net 从 C# 向蓝牙发送数据