需要将多个 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的主要内容,如果未能解决你的问题,请参考以下文章

怎样将多个PDF文件合并

将多个pdf合并为一个

将列表中的多个图像合并为 PDF

在 Linux 中将多个 jpg 合并为单个 pdf

如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF

用Python+PIL将多个jpg图像批量合并成一个pdf文件