このチュートリアルでは、高度なストリームを使用してJava で大きな PDF ファイルを処理する方法に焦点を当て、MemoryStream クラスを使用して大きな PDF ファイルを処理する際に、高メモリの問題と制限を回避します。シンプルな API 呼び出しを使用して、Windows、Linux、または macOS で確立された Java** ベースの環境で巨大な PDF ドキュメントを読み込んで処理できます。
Java で大きな PDF ファイルを処理する手順
- 大きな PDF ファイルを処理するために、リポジトリから Aspose.PDF for Java を追加する環境をセットアップします
- Files.readAllBytes メソッドを使用して、ディスクから大きな PDF ファイル バイトにアクセスします。
- OptimizedMemoryStream クラスのオブジェクトをインスタンス化し、その中にバイト配列をコピーします
- InputStream ベースのコンストラクターを使用して Document クラス オブジェクトを初期化し、PDF をロードします。
- 要件に応じて PDF ドキュメントを処理または変更する
- 変更および処理された PDF ドキュメントをディスクに保存します
上記の手順により、高度なストリームを使用して Java で巨大な PDF ファイルを読み込むことができます。 OptimizedMemoryStream クラスは、サイズが 2.5GB を超える巨大な PDF ファイルを処理できる標準以上の容量を持つ MemoryStream を定義することにより、* Java でメモリ ストリームを使用して巨大な PDF ドキュメントを処理することを可能にします。
Java で大きな PDF ファイルを処理するコード
import com.aspose.pdf.Document; | |
import com.aspose.pdf.License; | |
import com.aspose.pdf.OptimizedMemoryStream; | |
import java.nio.file.Files; | |
import java.nio.file.Path; | |
import java.nio.file.Paths; | |
public class LargePDF { | |
static void main(String[] args) throws Exception { // Handle exception while processing large PDF files | |
String path= "C:/TestData/"; | |
// Instantiate the license to process the large PDF files | |
License PdfLicense = new License(); | |
PdfLicense.setLicense(path+"Conholdate.Total.Product.Family.lic"); | |
// Initialize the OptimizedMemoryStream object in which large size PDF will be stored for loading | |
OptimizedMemoryStream ms = new OptimizedMemoryStream(); | |
try{ | |
// Access the large PDF in Byte array | |
Path paths = Paths.get(path + "LargePDF.pdf"); | |
byte[] data = Files.readAllBytes(paths); | |
// Write large PDF byte array to OptimizedMemoryStream | |
ms.write(data, 0, (int)data.length); | |
// Use the optimized stream to process large PDF and load it into a Document object | |
Document doc = new Document(ms); | |
// Perform the desired operations and save the output PDF document | |
doc.save(path + "LargeSizePDFProcessed.pdf"); | |
} | |
finally{ | |
ms.close(); | |
} | |
} | |
} |
大きなサイズの PDF ドキュメントを管理するために MemoryStream を使用している場合、シーク機能がないために PDF ファイルの処理中に高メモリの問題が発生するという制限があります。高度なストリームを使用して、Java を使用して巨大な PDF ドキュメントをメモリ ストリームにロードし、処理が完了した後にディスクに保存するソリューションを検討できます。
この例では、単純な API 呼び出しを使用して Java で大きな PDF ファイルをロードする方法 を学習しました。 PDF ファイルの圧縮について知りたい場合は、JavaでPDFを圧縮 の方法に関するトピックを参照してください。