PDFTK, вызываемый через exec (), молча завершается с ошибкой - PullRequest
0 голосов
/ 12 ноября 2010

Я использую pdftk для объединения файлов PDF на лету, выполняя вызов exec () следующим образом:

exec("/path/to/pdftk /path/to/file1.pdf /path/to/file2.pdf cat output path/to/output.pdf", $execoutput);

Все это прекрасно работает в среде Linux,но когда он запускается локально в наших средах разработки (сочетание Windows / Uniform Server и OSX / MAMP), кажется, что это происходит молча.$ execoutput является пустым массивом.

Если команда, отправляемая в exec (), копируется и вставляется в командную строку в Windows или OSX, она имеет желаемый вывод и генерируется объединенный файл.На каждой машине разработчика установлен pdftk, и он может быть продемонстрирован как полностью работоспособный из командной строки.

В настоящее время это ставит меня в тупик.Я затрудняюсь объяснить, почему это происходит.

Ответы [ 2 ]

5 голосов
/ 12 ноября 2010

В конце концов я понял, что происходит.Как нуб, я предполагал, что на каждой машине установлена ​​последняя версия pdftk.Это не так.

Похоже, что описанная выше проблема связана с известной ошибкой, которая была исправлена ​​в версии 1.43

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

"Очистить маску сигналов как обходной путь для сред, которые отключают сигналы перед вызовом pdftk. Известно, что эта проблема приводит к зависанию pdftk в некоторых веб-настройках Python, а также в PHP."которая была единственной установкой для запуска версии> = 1.43; -)

Обновление каждой среды разработки до последней версии pdftk (в настоящее время 1.44) решило проблему

1 голос
/ 29 июня 2011

Это также может произойти, если pdftk не имеет разрешения на добавление вывода в нужную папку.Это может произойти, если вы распечатаете $ execoutput (с «verbose» в команде) и увидите, что последней записью будет «Создание вывода».В следующей строке должно быть сказано, что вывод выполняется, но на этом он заканчивается.Это заставило меня ненадолго (как это работает, если вы запускаете прямо из командной строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...