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

Jas*_*son 5 php linux pdf pdf-generation

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

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

最好的方法是什么?

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

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

将在Linux服务器上运行.

Fed*_*oni 8

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

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

$ pdftk in1.pdf in2.pdf in3.pdf in4.pdf in5.pdf in6.pdf cat output out.pdf
Run Code Online (Sandbox Code Playgroud)

in*.pdf输入文件在哪里out.pdf,结果如何.


jer*_*rik 6

使用 1.45 版 - 2012 年 12 月 6 日pdftk可以使用update_info创建书签,该书签可以用作目录。

它分 3 个步骤完成:

我的例子的前提

3个PDF文件。单页。

page1.pdf
page2.pdf
page3.pdf
Run Code Online (Sandbox Code Playgroud)

1.创建书签信息

# build the bookmark out of an example file
pdftk page1.pdf dump_data output meta.txt
# Edit meta.txt as you need
Run Code Online (Sandbox Code Playgroud)

这是一个对我有用的例子,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
Run Code Online (Sandbox Code Playgroud)

2.创建一个临时合并的pdf文件

pdftk page* cat output temp.pdf
Run Code Online (Sandbox Code Playgroud)

3. 添加书签到pdf

pdftk temp.pdf update_info meta.txt output final.pdf
Run Code Online (Sandbox Code Playgroud)

当您在 acrobat 阅读器中打开 final.pdf 时,您会在左侧看到书签。 在此处输入图片说明