質問:のexecまたはパススルーコマンドに//メモリ:それはPHPを使用することは可能ですか?PDFTK://メモリ
私は何の問題もなく、EXECまたはパススルーでPHPの変数を使用することができますが、私は、PHPとのトラブルを抱えています:私は私の一時的なPDFファイルの書き込みの全てを排除しようとしています ://メモリ
背景をPDFTKで私は一時的なFDFファイルを書いています
1)
2)フォーム記入すべてのPDFファイル
4)一緒にすべてのPDFのをマージするために#1
3)リピート#1、#2を使用して、一時pdfファイルを。
これは現在動作していますが、多くのファイルが作成され、ボトルネックです。
私は仮想ファイルのPHPを利用することにより、pdftkで物事をスピードアップしたいと思います://メモリ
まず、私は#1で使用されるFDFファイルを仮想化しようとしています。
これだけで答えるだけで、「正解」が得られます。次のように :)
コードは次のとおりです。
$fdf = 'fdf file contents here';
$tempFdfVirtual= fopen("php://memory", 'r+');
if( $tempFdfVirtual) {
fwrite( $tempFdfVirtual, $fdf);
} else {
echo "Failure to open temporary fdf file";
exit;
}
rewind($tempFdfVirtual);
$url = "unfilled.pdf";
$temppdf_fn = "output.pdf";
$command = "pdftk $url fill_form $tempFdfVirtual output $temppdf_fn flatten";
$error="";
exec($command, $error);
if ($error!="") {
$_SESSION['err'] = $error;
} else {
$_SESSION['err'] = 0;
}
私はエラーコード#1を取得しています。 stream_get_contents($ tempFdfVirtual)を実行すると、コンテンツが表示されます。
ありがとうございます!
だけFYI同じものを探してすることができる他の人に...私はステップ1を完了するために以下の回答を使用しました。私はその後、パイプに出力するpdftkと、次にすべての出力ストリームを1つのpdfにマージするZendPdfの組み合わせを使用してステップ2〜4を達成することができました。 PDFTKは、仮想PDFをマージする際に1つの仮想ストリームを受け入れることに限られていますが、実際のファイルのリストでは正常に動作します。 ZendPdfに関する素晴らしい点は、ファイル全体ではなくpdfデータを渡すことができることです。 – Cymbals