3

目前我需要将 50 多个 PDF 文件合并为 1 个 PDF。我正在使用 PDFTK。使用以下指南:http ://www.johnboy.com/blog/merge-multiple-pdf-files-with-php

但它不起作用。我已经验证了以下内容:

  1. 我已经尝试了从我的 PHP 合并 2 个 pdf 的命令,它正在工作。
  2. 我已经回显了最终命令并将该命令复制并粘贴到命令提示符中并手动运行,所有 50 个 PDF 都已成功合并。

因此,我的 PHP 中的 exec 和合并 50 个 PDF 的命令都是正确的,但是在 PHP 中一起完成时它不起作用。我还声明了 set_time_limit(0) 以防止任何超时但仍然无法正常工作。

知道有什么问题吗?

4

3 回答 3

5

您可以尝试找出自己:

print exec(str_repeat(' ', 5000) . 'whoami');

我认为它是 8192,至少在我的系统上,因为它在字符串大于 10K 时会失败,但它仍然适用于小于 7K 的字符串

于 2013-02-06T01:58:25.040 回答
0

我不确定单个命令的长度是否有长度限制,但我很确定您可以使用“\”将其拆分为多行,以检查是否是问题所在。同样,我不认为它是...当您尝试使用 PHP 和 exec 运行完整命令时是否有任何错误输出,也可以尝试 system() 而不是 exec()。

于 2013-02-06T01:51:34.503 回答
0

1.45 之前的 PDFTK 版本仅限于合并 26 个文件,因为使用“句柄”

/* Collate scanned pages sample */
pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf

如您所见,“A”和“B”是“句柄”,但应该是一个大写字母,因此只能使用 AZ,如果您达到该限制,您的脚本可能会输出如下错误

Error: Handle can only be a single, upper-case letter

但是在 1.45 中这个限制被删除了,changelog extract

您现在可以使用多字符输入句柄。以前的版本仅限于单个字符,在使用句柄时对输入 PDF 的数量施加了任意限制。句柄仍必须全部为大写 ASCII。

也许你只需要更新你的库;)

于 2013-05-01T02:35:02.943 回答