ユーザー自身の画像からPDFブックを作成するシステムがあります。画像は高解像度で、pdf は最終的に約 70 ページになり、ほとんどの画像が表示されます。
サーバー上のローカルアプリケーションでpdfを生成するとき、プロセスは約3GbのRAMを使用するため、成功するよりも頻繁にクラッシュします。ファイルも非常に巨大で、約 1.2 Gb です。印刷してPDFに変換すると、100倍小さくなります。
ABCPdf のメモリ使用量を減らし、より小さなファイルを作成する方法はありますか?
もう 1 つ注意してください。非常に大きな PDF の場合は、「linearize」を false に設定することをお勧めします。
<pdfDoc.SaveOptions.Linearize = false;>
これにより Web ストリーミング用に PDF が最適化されるため、PDF をストリーミングしている場合は true のままにしておくことをお勧めしますが、保存中に ABCPDF が使用するメモリが大幅に増加することがわかりました。
私は iTextSharp で非常によく似た経験をしました。そこでは、画像を含む大きな PDF を作成するたびに、基本的にメモリが不足していました。
画像を使い終わった後、画像を解放するために呼び出す必要がある関数があることがわかりました。これは、再度使用する場合、または最終的に PDF を閉じるまで、画像をメモリに保持するためです。
ヘッダー/フッターのロゴが繰り返されている場合は画像を再利用するか、外出先で画像をリリースします。
おそらくそれがあなたが直面している問題ですが、私は ABCPdf の経験がありません。
ABCPdf を直接使用したことはありませんが、画像が問題の原因であると思われます。PDF オブジェクトに含まれる前にサイズを変更してください。それが、印刷からPDFへのプロセスが行うことだと思います。