You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ghostscript合并PDF时如何调整现有书签的层级结构?

可以通过Ghostscript实现该需求,不需要从零编写完整的书签树,具体操作方法如下:

操作步骤

1. 提取单篇PDF的原有书签

调用Ghostscript自带的pdf_info.ps脚本即可导出单篇PDF的原生书签(pdfmarks格式):

gswin32.exe -q -dNODISPLAY -dPrinted=false -sFile=xxx.info xxx.pdf -f [Ghostscript安装路径]/lib/pdf_info.ps

输出的xxx.info文件包含该PDF所有书签的层级、跳转目标、展示标题等完整信息。

2. 调整书签结构,挂靠到自定义顶级书签

为每篇PDF的书签片段做两处批量修改即可:

  • 新增该篇PDF对应的顶级书签定义,示例如下:
    [ /Title (文章A的标题) /Page 1 /Count 5 /OUT pdfmark
    
    其中Page填该篇PDF在合并后文件中的起始页码,Count填该篇PDF的原有书签总数量(书签默认展开填正值,默认折叠填负值)。
  • 把导出的原书签字段里的/Level值统一加1,即可把所有原书签挂靠到刚才新增的顶级书签下;同时把所有原书签的Page值加上该篇PDF的页码偏移量(比如第一篇共12页,第二篇的所有书签页码都要加12)。

3. 合并PDF时加载整理好的书签文件

把所有调整后的书签片段汇总到同一个文件(比如命名为merge_bookmarks),在原合并命令中新增-dDOPDFMARKS参数并加载该书签文件即可:

gswin32.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dDOPDFMARKS -sOutputFile=o.pdf a.pdf b.pdf merge_bookmarks

如果需要合并的PDF数量较多,可以写简单的脚本自动完成书签提取、层级和页码的批量修改,无需手动操作。


内容的提问来源于stack exchange,提问作者Crafty Cat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:54:04