我在用
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=book.pdf -f front-matter.pdf fulltext-0.pdf fulltext-1.pdf back-matter.pdf
从一系列pdf文档中创建一个PDF文档。我打算包含一个新的编目内容表,并使用pdfmark mechanism包含它。然后,我注意到原始文件中已经包含书签-但是,它们引用的是原始页码,而不是合并文档中的那些。
我正在寻找两种可能的解决方案。删除原始书签或使用原始书签,但以某种方式更新其页面引用...
最佳答案
通常情况下,有人在您之前走过相同的路...
unfolding disasters已经解决了a solution这个问题。他的python script pdf-merge.py首先使用pdftk
开关调用dump_data
来检索所有pdfmark信息。然后,它跟踪每个合并文档的总页数,并进行数学运算以使pdfmark指令中的新页数指针偏移当前PDF文档之前包含的所有PDF文档的页数总数。因此,它与KenS的2次通过方法很接近,但并不相同。它首先使用pdftk发现书签,然后创建具有正确页码的新书签文件。它还设法将原始的pdfmark指令(通常由gs保留为noop)。我不会假装我不了解最后一部分的工作原理...
但是,脚本可以满足我的所有需求,包括在最终编写之前调整书签文件的选项。特雷弗·金(Trevor King)非常整洁,戴着帽子。
关于pdf - 将PDF与GhostScript组合: Using Original Bookmarks with corrected page numbers,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8070731/