如何在 Linux 上向 PDF 文档添加书签如何在 Linux 上向 PDF 文档添加书签如何在 Linux 上向 PDF 文档添加书签如何在 Linux 上向 PDF 文档添加书签
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上向 PDF 文档添加书签

问题:我想向 PDF 文件添加书签,以便书签出现在左侧书签面板中。是否有命令行方法可以在 Linux 上的 PDF 文件中创建书签和嵌入书签链接?

在 PDF 文档中,可以添加书签作为导航工具,以便读者通过单击书签链接来定位并快速移动到文档中的特定部分。如果 PDF 文件是一个具有数百页的日志文档,那么添加正确组织的书签对于引导用户有效地浏览文档至关重要。

PDF 书签可以使用 pdfmark 运算符来实现,它是 PostScript 语言扩展的一部分。除此之外,pdfmark 可用于向 PDF 中的一小段文本添加热链接,这几乎是一个书签功能。

pdfmark 可以使用 Ghostscript 嵌入到 PDF 文件中。以下是如何在 Linux 上使用 Ghostscript 从命令行添加 PDF 书签。

使用 Ghostscript 在 PDF 文件中添加书签

要添加 PDF 书签,首先创建一个索引文件 (index.info),格式如下:


[/Page 1 /Title (January) /OUT pdfmark
[/Page 2 /Title (February) /OUT pdfmark
[/Page 3 /Title (March) /OUT pdfmark
[/Page 4 /Title (April) /OUT pdfmark
[/Page 5 /Title (May) /OUT pdfmark
[/Page 6 /Title (June) /OUT pdfmark
[/Page 7 /Title (July) /OUT pdfmark

其中,/Page表示书签跳转到的页码,/Title表示书签的名称。

创建 index.info 后,使用以下命令在 PDF 文件 input.pdf 中添加书签。 output.pdf 将嵌入书签。


$ gs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dPDFSETTINGS=/prepress index.info -f input.pdf

例如,给定输入 PDF 文件:

输出的 PDF 文件将如下所示:

使用 Ghostscript 在 PDF 文件中添加嵌套书签

如果您有一个包含章节、小节、小节等的结构化 PDF 文档,您可能需要在 PDF 文件中添加“嵌套”书签。在这种情况下,请使用 /Count N 属性和 pdfmark 来表示嵌套级别。参数N 对应于直接从属书签的数量。例如,如果第一章有三个部分,您可以在该章的书签中添加 /Count 3,如果给定部分有两个小节,则可以在该部分的书签中添加 /Count 2。

让我们为以下文档创建嵌套书签。

创建的索引文件如下所示。


[/Count 3 /Page 4 /Title (Introduction) /OUT pdfmark
[/Page 4 /Title (Features) /OUT pdfmark
[/Page 6 /Title (Mailing lists and IRC channel) /OUT pdfmark
[/Page 6 /Title (Virus submitting) /OUT pdfmark
[/Count 2 /Page 6 /Title (Base package) /OUT pdfmark
[/Count 2 /Page 6 /Title (Supported platforms) /OUT pdfmark
[/Page 6 /Title (UNIX) /OUT pdfmark
[/Page 7 /Title (Windows) /OUT pdfmark
[/Page 7 /Title (Binary packages) /OUT pdfmark
[/Count 7 /Page 7 /Title (Installation) /OUT pdfmark
[/Page 7 /Title (Requirements) /OUT pdfmark
[/Page 8 /Title (Installing on shell account) /OUT pdfmark
[/Page 8 /Title (Adding new system user and group) /OUT pdfmark
[/Page 9 /Title (Compilation of base package) /OUT pdfmark
[/Page 9 /Title (Compilation with clamav-milter enabled) /OUT pdfmark
[/Page 9 /Title (Running unit tests) /OUT pdfmark
[/Page 10 /Title (Reporting a unit test failure bug) /OUT pdfmark

使用与上面相同的命令在输入 PDF 文件中添加嵌套书签。


$ gs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dPDFSETTINGS=/prepress index.info -f input.pdf

带有嵌套书签的输出 PDF 文件将如下所示。

默认情况下,所有嵌套书签都会展开。如果您希望最初折叠嵌套书签,请使用 [/Count -N] 格式(即在数字前面添加 - 符号)。

这样,输出将如下所示。

您需要单击每个关闭的书签才能将其展开。

©2015-2025 艾丽卡 support@alaica.com