1

Batik を使用して SVG 画像を PDF に変換しています。端末を介してそれらを変換すると、すべて問題なく、ファイルが変換されます。ただし、私が欲しいのは、exec() を使用して PHP から動的に変換することです。

これは、ターミナルから変換したときに表示されるものです。

About to convert 1 SVG file(s)

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

... success

exec() を使用すると、出力は ...success 部分のない「Converting output.svg... Etc」に制限されます。サーバーがスクリプトの終了を待たないかのようです。また、生成された結果の 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 ...

編集:

私が得た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:

いくつかのグーグルの後、私は解決策を見つけました:

-Djava.awt.headless=true:)

答えを見つけるために私を導いてくれてありがとう!

4

1 に答える 1

0

標準ストリーム stdout および stderr について学習します。

于 2011-04-12T09:03:55.190 に答える