pdf - 将 PDF 与 GhostScript : Using Original Bookmarks with corrected page numbers 结合

标签 pdf pdf-generation ghostscript

我在用

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-pass 方法接近但不相同。它首先使用 pdftk 发现书签,然后创建一个具有正确页码的新书签文件。它还设法将原始 pdfmark 指令(通常由 gs 保存为 noop)。我不会假装我理解最后一部分是如何工作的......

但是,脚本完成了我需要的所有工作,包括在最终写入之前调整书签文件的选项。特雷弗·金(Trevor King)非常整洁和帽子提示。

关于pdf - 将 PDF 与 GhostScript : Using Original Bookmarks with corrected page numbers 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070731/

相关文章:

java - Itext pdf合并: Document overflow outside pdf (Text truncated) page and not displaying

javascript - 检测浏览器/css 强制换行符中的换行符

ghostscript - 在 Ghostscript 中渲染 "pop up"和类似的注释注释

javascript - PDF 到可编辑文档

image - 我可以在 R 中将图像绘制为 PDF 文件吗?

javascript - 使用原生js创建pdf文件?

linux - 使用 ghostscript 9.0 将大的横向 PDF 绘图打印到 a3 LaserJet4(纵向)

linux - GhostScript 批处理模式?

c# - 如何使用 iTextSharp for C# 设置现有 PDF 的版权元数据

php - DOMPDF 无法呈现字体,而是显示圆圈