是否可以使用 pdftk 呈现打开时显示书签的带书签 PDF?多年来,我已经能够使用各种 GUI 工具(Ipro+、PDFDocs 等)将其设置为选项,但我找不到表明 pdftk“知道”(可以这么说)如何设置该标志的文档,在比较了以下转储后,我也没有找到可能的值
pdftk input.pdf output_data output data.txt
来自默认显示书签的文件中,而不是默认显示书签的转储。
答案1
使用 pdftk 是否能呈现打开时显示书签的带书签的 PDF?
我对这个主题做了一些研究,并想编写一个带有参考资料的答案。
根据这篇文章里的这个人 自称是
pdftk
维护者,声明如下:当使用 pdftk 从 PDF 页面或文档(通过 cat 操作)组装新的 PDF 时,新的 PDF 没有显示设置。因此,生成的 PDF 将使用查看器首选项中设置的默认设置进行显示。
所以我认为这意味着如果你创建了一个新的PDF 文档,或者使用操作创建了新的 PDF 文档cat
,或者从一个尚未包含此初始视图元数据属性的 PDF 文档开始,然后PDFtk它会在设置为打开的“视图”中打开,但默认 PDF 查看软件会告诉它打开。如果文档中没有与书签面板视图相关的元数据,那么显然无论如何它都无法使用它。
根据PDFtk 手册页有两个选项与元数据和书签相关,另一个声明与书签相关。
转储数据
读取单个输入 PDF 文件并将其元数据、书签(又称轮廓)、页面指标(媒体、旋转和标签)和其他数据报告给指定的输出文件名或(如果未指定输出)标准输出。非 ASCII 字符被编码为 XML 数字实体。不创建新的 PDF。
update_info < 信息数据文件名 | - | PROMPT >
更改单个 PDF 信息字典中的书签和元数据以匹配输入数据文件。输入数据文件使用与 dump_data 输出相同的语法。非 ASCII 字符应编码为 XML 数字实体。这不会更改存储在 PDF 的 XMP 流中的元数据(如果有)。例如:
pdftk in.pdf update_info in.info output out.pdf
如果给出了 PDF 句柄但未指定页面,则使用整个 PDF。如果未为任何输入 PDF 指定页面,则输入 PDF 的书签也会合并并包含在输出中。
所以我认为这意味着如果您的 PDF 文档包含书签元数据,则您需要dump_data
首先使用该选项将该元数据导出到平面文件。然后,您将使用包含该元数据的平面文件,并选择update_info
将该文件中的相关元数据放入您创建的 PDF 文件中,等等。
此外,如果在 PDFtk 操作中未指定任何页面(例如cat
选项),那么听起来整个 PDF 文档及其相关元数据(包括默认“视图”设置)将合并到输出文件中。
答案2
在看到您的问题之前,我也曾有过同样的疑问。dump_data 和 update_info 的问题在于,您要查找的属性 PageMode 未包含在 dump_data 输出中。
如果你看我的问题https://unix.stackexchange.com/questions/398806/how-to-display-bookmarks-in-the-initial-view-when-opening-a-pdf-file/399144#399144您会看到我使用(evermap.com/autometadata.asp)来提供中间解决方案,然后比较修改后的文件/原始文件来查看有什么区别。
仍然没有干净的命令行解决方案
谨致问候/Colm