PHP exec и растровый батик - PullRequest
1 голос
/ 12 апреля 2011

Я использую батик для конвертации изображений SVG в PDF. При преобразовании их через терминал все в порядке, и файл конвертируется. Однако я хочу преобразовать его динамически из PHP с помощью exec ().

Это то, что я вижу, когда я конвертирую из терминала:

About to convert 1 SVG file(s)

Converting output.svg to /opt/lampp/htdocs/tool/generated/output.pdf...

... success

При использовании exec () вывод ограничивается 'Converting output.svg ... Etc' без части ... success. Как будто сервер не будет ждать завершения сценария. Кроме того, полученный PDF-файл, который генерируется, полностью пуст.

Это вызов в PHP:

$command = 'cd ~/Downloads/batik-1.7 && java -jar batik-rasterizer.jar /opt/lampp/htdocs/tool/generated/output.svg -m "application/pdf"';

$string = exec($command);

echo '{"success": true, "message": "Design saved as generated/output.svg' . $string . '"}';`

Вот что я вижу в консоли js:

Design saved as generated/output.svgConverting output.svg to /opt/lampp/htdocs/tool/generated/output.pdf ...

Edit:

Используя stderr, я получил:

No protocol specified Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

Редактировать 2:

После некоторого поиска в Google я нашел решение:

-Djava.awt.headless=true:)

Спасибо всем за руководство в поиске ответа!

1 Ответ

0 голосов
/ 12 апреля 2011

Узнайте о стандартных потоках stdout и stderr.

...