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() メソッドで受け取ります。

参照

 日本語