使用PHP将多个PDF文件合并为单页PDF - 定位合并

8
这不是将多个PDF合并成一个带有多个页面的尝试,而是创建来自已经存在的几个PDF文件的单个页面PDF的尝试。我需要使用PHP完成此操作,服务器是CentOS。
我已经基于各自的模板(使用FPDF)生成了一组单页PDF文件。要求允许用户混合和匹配现有的PDF文件,并将它们定位在一起以创建单个PDF。
我的当前尝试是将PDF转换为图像(使用Ghostscript),并使用输出JPEG创建最终PDF(使用FPDF)。虽然这是可能的,但在转换过程中PDF的质量会稍微受到损害。
我想知道是否有更好的解决方案可以使用?
更新:
解决方案不必是PHP。它很可能不是。我当然可以尝试任何能够完成工作的命令行工具。示例命令如下: $ newtool -o outfile.pdf -s WidthXHeight -i in1.pdf in2.pdf in2.pdf -g p1Xp2 p3Xp4 p5Xp6
以上仅是一个示例-不是真正的命令-我只是希望有这种功能的工具。指定一组输入文件及其在输出文件上的位置。
1个回答

1

我过去使用Ghostscript(将现有PDF页面定位在较大的空白PDF页面上)和pdftk(将两个大小相同的PDF页面叠加/合并成一个新页面)的组合来完成此操作。

请查看这些答案(@Superuser.com),以了解其工作原理:

我的程序使用命令行和/或脚本。但是,这也可以通过PHP从Ghostscript .dll/.so进行编程扩展。


谢谢你的回答。我很高兴使用命令行工具来获得结果。虽然这些参考资料很有用(我之前看过第二个),但是否有一个特定的示例,说明如何将现有的PDF放置在更大的空白PDF上呢? 顺便说一句,你对第一个问题的回答真是太棒了 :-) - dakdad
抱歉 - 暂时忽略我的评论。我将尝试使用pdftk进行合并,然后再回复您。 - dakdad
我已经尝试过使用Ghostscript,但是我只能想到一种方法将一个PDF文件放置在新创建的大文件的某个位置。我无法看到如何将多个文件放置在多个位置。对此有什么建议吗? - dakdad
您只能一次将一个页面(或文件)放置在新创建的较大文件上。您无法将多个文件放置在多个位置上。这就是为什么您需要使用pdftk来叠加不同的新创建文件。 (也许您可以通过在一个命令中使用“stamp”和“background”操作来同时处理3个文件...) - Kurt Pfeifle
1
非常感谢您提供一个带有解决方案的命令行片段! - caneta
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接