PDFを画像に変換する際のJVMクラッシュを防ぐ
非常に大きなPDFを画像に変換しようとすると、次のようなエラーが発生することがあります:
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:75)
at java.awt.image.Raster.createPackedRaster(Raster.java:467)
これは、現在のPDFページの画像を作成するためのメモリをJavaが割り当てられないことを意味します。
JVMは特定のサイズを超えるBufferedImageを扱うことができません(正確な値はシステムに依存します)。ヒープサイズを増やすことで改善される場合もありますが、Javaにおけるすべてのメモリ問題を解決するわけではありません(特にJavaヒープとネイティブヒープの両方が関係する場合)。
別の解決策として、より小さなスケールでPDFを変換する方法があります。例えば、Javadocの例に記載されているように、ConvertPagesToImages を使用してスケーリングされた画像を作成できます。
また、getPageDimensions を使用して、変換前にページサイズを確認し、ドキュメントがシステムで処理するには大きすぎるかどうかをテストしてから、より小さいサイズでページを生成することもできます。
