通过exec()调用的PDFTK无声地失败

jth*_*son 1 php pdf pdf-generation

我正在使用pdftk通过执行exec()调用来动态连接pdf文件:

exec("/path/to/pdftk /path/to/file1.pdf /path/to/file2.pdf cat output path/to/output.pdf", $execoutput);
Run Code Online (Sandbox Code Playgroud)

这一切在linux环境中运行得非常好,但是当我们在开发环境(Windows/Uniform Server和OSX/MAMP的混合)上本地运行时,这似乎无声地失败了.$ execoutput是一个空数组.

如果发送到exec()的命令被复制并粘贴到Windows或OSX中的命令行,则它具有所需的输出并生成连接文件.每台开发人员机器都安装了pdftk,并且可以从命令行演示其功能完全正常.

这让我很难过.我无法解释为什么会这样.

jth*_*son 5

我最终弄清楚发生了什么.就像一个菜鸟我假设每台机器都运行最新版本的pdftk.他们不是.

看起来上述问题涉及在版本1.43中修复的已知错误

来自http://www.pdflabs.com/docs/pdftk-version-history/

"在调用pdftk之前,将信号掩码清除为关闭信号的环境.已知这个问题会导致pdftk在某些Python Web设置和PHP中挂起."

猜猜哪个是运行版本的唯一设置> = 1.43 ;-)

将每个开发环境更新到最新版本的pdftk(目前为1.44)已解决了这个问题