I/O 操作
I/O パターン
Aspose.PDF FOSS for Java は、すべての主要な API(Document、PdfFileEditor、およびすべてのファサードクラスを含む)において、ファイルパスと Java ストリームの両方を入力および出力として一貫して受け入れます。
ドキュメント I/O
Document クラスは、コンストラクタでファイルパス文字列または InputStream を受け入れます。 save() メソッドは、ファイルパス文字列または OutputStream を受け入れます。
// File path input
try (Document doc = new Document("input.pdf")) {
doc.save("output.pdf");
}
// Stream input/output
try (Document doc = new Document(inputStream)) {
doc.save(outputStream);
}両方のコンストラクタは、ドキュメント全体をメモリにロードします。大きなドキュメントの場合、十分なヒープ領域を確保するか、PdfFileEditor.setUseDiskBuffer(true) の使用を検討してください。
PdfFileEditor ストリームサポート
PdfFileEditor の操作は、ファイルパス文字列と Java InputStream/OutputStream オブジェクトの両方を受け入れます:
PdfFileEditor editor = new PdfFileEditor();
// All operations support both file paths and streams
editor.concatenate(new InputStream[]{s1, s2}, outputStream);
editor.extract(inputStream, 1, 3, outputStream);インメモリ パイプライン
一時ファイルを使用しないインメモリパイプラインでは、ByteArrayOutputStream を使用してドキュメント出力を取得し、ByteArrayInputStream でラップして下流処理に渡します:
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
try (Document doc = new Document()) {
doc.getPages().add();
doc.save(buffer);
}
byte[] pdfBytes = buffer.toByteArray();
// Pass pdfBytes downstream — no temp file needed
ByteArrayInputStream next = new ByteArrayInputStream(pdfBytes);Facade I/O
すべてのファサードクラス(例: PdfAnnotationEditor, PdfContentEditor, PdfFileSecurity)は同じ bind-operate-save パターンに従い、ファイルパス、ストリーム、または Document オブジェクトを bindPdf() メソッドで受け取ります。