需要将多个 pdf 合并为一个带有目录部分的 PDF
Posted
技术标签:
【中文标题】需要将多个 pdf 合并为一个带有目录部分的 PDF【英文标题】:Need to merge multiple pdf's into a single PDF with Table Of Contents sections 【发布时间】:2011-01-26 00:10:50 【问题描述】:我们将使用 php 脚本生成 50-100 个单个 PDF。 PDF 通常以 10-20 个为一组。每个组都需要有自己的目录或索引,然后在开始时还需要有一个主目录或索引。
或者,如果这太难了,我们可以在一开始只使用一个目录。
解决此问题的最佳方法是什么?
我们是否需要创建目录,然后将其导出为 PDF 并将其附加到开头,然后将其余文件混合在一起?还是有更好的解决方案?
什么是我们合并 pdf 的最佳工具?
将在 Linux 服务器上运行。
【问题讨论】:
【参考方案1】:什么是我们合并 pdf 的最佳工具?
在 Linux(以及 Windows)上,您可以安装一个有用的小程序,pdftk
。将PDF绑定在一起效果很好。例如:
$ pdftk in1.pdf in2.pdf in3.pdf in4.pdf in5.pdf in6.pdf cat output out.pdf
其中in*.pdf
是输入文件,out.pdf
是结果。在这期间,@jerik 已经告诉了an answer 如何处理 TOC。
【讨论】:
适用于 pdftk 版本 1.45。示例文档见我的answer【参考方案2】:对于版本 1.45 - 2012 年 12 月 6 日,pdftk
能够使用 update_info 创建书签,可用作目录。
分三步完成:
我的例子的前提条件
3 个 PDF 文件。单页。
page1.pdf
page2.pdf
page3.pdf
1。创建书签信息
# build the bookmark out of an example file
pdftk page1.pdf dump_data output meta.txt
# Edit meta.txt as you need
这是一个对我有用的例子,meta.txt:
InfoBegin
InfoKey: Creator
InfoValue: PDFTK
NumberOfPages: 3
PageMediaBegin
PageMediaNumber: 1
PageMediaRotation: 0
PageMediaRect: 0 0 595.32 841.92
PageMediaDimensions: 595.32 841.92
BookmarkBegin
BookmarkTitle: Page 1
BookmarkLevel: 1
BookmarkPageNumber: 1
BookmarkBegin
BookmarkTitle: Page 2
BookmarkLevel: 1
BookmarkPageNumber: 2
BookmarkBegin
BookmarkTitle: Page 3
BookmarkLevel: 1
BookmarkPageNumber: 3
2。创建一个临时合并的pdf文件
pdftk page* cat output temp.pdf
3。将书签添加到 pdf
pdftk temp.pdf update_info meta.txt output final.pdf
当您在 acrobat reader 中打开 final.pdf 时,您会看到左侧的书签。
【讨论】:
这仍然需要手动搜索和输入页码。有什么方法可以合并pdf并在合并pdf的页面上自动创建书签? 未测试,但理论上所有步骤都可以通过脚本自动化。然后,您不必手动执行任何操作。除了编写一次脚本。【参考方案3】:为了简化为PDF文件生成目录的过程,我已经成功地从php生成了LaTeX代码,然后使用latex2pdf生成了PDF文件。
在你的情况下,这可能是一个替代方案。
要合并 PDF,我同意 Federico 的观点,即 pdftk 是最佳解决方案。
【讨论】:
【参考方案4】:如果您可以使用 PDF 书签而不是目录页面,则可以使用 pdfrecycle 合并 PDF 文件并创建书签。
【讨论】:
很遗憾,该软件不再可用。【参考方案5】:你可以像这样使用gs
:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=combined.pdf file1.pdf file2.pdf
【讨论】:
以上是关于需要将多个 pdf 合并为一个带有目录部分的 PDF的主要内容,如果未能解决你的问题,请参考以下文章