多くのPDFファイルを1つの大きなファイルにマージしてクライアントに送信したいと考えています。しかし、プロダクションサーバー上のリソースは非常に制限されているため、まずメモリ内のすべてのファイルをマージしてから、完成したPDFファイルを送信すると、使用可能なメモリがなくなるため、スクリプトが強制終了されます。PDFファイルを作成し、まだ終了していない間にストリーミングしますか?
PDFファイルを完全に作成してメモリの制限をバイパスする前に、より良いサーバーを取得すること以外には、唯一の解決方法がPDFファイルのストリームを開始することになります。
しかし、それが可能かどうかは疑問です。 PDFファイルを完全に作成する前にストリーミングすることはできますか?あるいは、PDFファイル形式では、未完成のファイルのストリーミングが許可されていません。一部のヘッダーなど、内容全体が明確な後に設定する必要があるためです。
可能であれば、どのPDFライブラリがファイルをストリームとして作成することをサポートしていますか?私が知っている(TCPDFのような)ほとんどのライブラリは、メモリ内に完全なファイルを作成し、最終的にはこの完成した結果をどこかに出力するようです(つまり、$tcpdf->Output()
メソッド経由で)。