Java コードから PDF を取り扱う際には iText が便利で、Java が公用語の皆様はよく利用されていることでしょう。 PDF を結合して新たな PDF を作るには PdfCopy を利用するのが簡単です。しかし、大量の PDF を結合していくと、すぐに OutOfMemoryError が発生してしまいます。ここでいう「大量の PDF」というのは、具体的には結合後の PDF ファイルサイズが 500MB を超えるとか、そういったスケールを想定してください。これは、PdfReader が読み込んだ PDF データをメモリー上に保持しているためにヒープを大量に消費し、結果として OutOfMemoryError を誘発する、ということのようです。 対策方法はないかと調べたところ、PdfReader クラスのコンストラクター public PdfReader(RandomAccess