需要将多个pdf合并为具有Table Of Contents部分的单个PDF

时间:2010-03-10 17:04:27

标签: php linux pdf pdf-generation

我们将使用php脚本生成50-100个单独的PDF。 PDF通常分为10-20组。每个组都需要拥有自己的目录或索引,然后还需要在开头有一个主目录或索引。

或者,如果这太难了,我们可以在开始时使用一个目录。

最好的方法是什么?

我们是否需要创建目录,然后将其导出为PDF并将其附加到开头并在此之后将其余文件混合?或者有更好的解决方案吗?

我们合并pdf的最佳工具是什么?

将在Linux服务器上运行。

5 个答案:

答案 0 :(得分:8)

  

我们合并pdf的最佳工具是什么?

在Linux发行版上,您可以安装一个有用的小程序pdftk。它可以很好地将PDF绑定在一起。例如:

$ pdftk in1.pdf in2.pdf in3.pdf in4.pdf in5.pdf in6.pdf cat output out.pdf

其中in*.pdf是输入文件,out.pdf是结果。

答案 1 :(得分:2)

使用版本1.45 - 2012年12月6日,pdftk能够使用update_info创建书签,可以将其用作toc。

完成了3个步骤:

我的例子的先决条件

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时,您会在左侧看到书签。 enter image description here

答案 2 :(得分:0)

为了简化为PDF文件生成目录的过程,我已成功从php生成LaTeX代码,然后使用latex2pdf生成PDF文件。

在您的情况下,也许这可能是另一种选择。

要合并PDF,我同意Federico的观点,即pdftk是最佳解决方案。

答案 3 :(得分:0)

如果您可以使用PDF书签而不是目录页面,则可以使用pdfrecycle合并PDF文件并创建书签。

答案 4 :(得分:0)

您可以像这样使用gs

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=combined.pdf file1.pdf file2.pdf