1

PDF ファイルを PNG 画像に変換するには、cgi の 1 つで Ghostscript を呼び出す必要があります。この cgi には、リクエストにエンコードされた PDF ストリームが含まれており、次のようにデコードされます。

私の $PDF_ENCODED = $q->param('PDF_ENCODED');
私の $PDF_DECODED = decode_base64($PDF_ENCODED);

「gs」コマンドを呼び出すことにより、ディスク上に PNG イメージを生成します。

私の問題は、 $PDF_DECODED を gs コマンドラインにパイプする方法がわからないことです。私が試してみました

システム("$PDF_DECODED | gs -dNOPAUSE -q -r300 -sDEVICE=png16m -dBATCH -sOutputFile=/tmp/ghostscript/new-test.png-")

しかし、それは機能していません。

ありがとう。

ありがとう、ゴリマーとシンバブク。それはで働いています

$SIG{パイプ} = '無視';
open(FH, "| gs -dNOPAUSE -q -r300 -sDEVICE=png16m -dBATCH -sOutputFile=/tmp/ghostscript/new-test.png -") or die "can't fork: $!";
print FH "$PDF_DECODED\n" or die "can't write: $!";
FH を閉じるか死ぬ "閉じることができません: status=$?";
4

1 に答える 1

0

Perl では、プロセスをファイルであるかのように開くことができます。「ファイル」ハンドルに書き込むときは、ファイルにデータを書き込む代わりに、データをプロセスにパイプします。 「 の IPCperlipcopen() を使用する」を参照してください。

于 2012-06-11T13:55:59.443 に答える