我在用

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/

10-10 06:07