Operazioni I/O
Modelli I/O
Aspose.PDF FOSS per Java accetta costantemente sia percorsi file sia flussi Java come input e output in tutte le principali API, inclusi Document, PdfFileEditor e tutte le facade classes.
I/O del documento
La classe Document accetta una stringa di percorso file o un InputStream nel suo costruttore. Il metodo save() accetta una stringa di percorso file o un 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);
}Entrambi i costruttori caricano l’intero documento in memoria. Per documenti di grandi dimensioni, assicurati di avere spazio heap sufficiente o considera l’uso di PdfFileEditor.setUseDiskBuffer(true).
PdfFileEditor Supporto Stream
Le operazioni PdfFileEditor accettano sia stringhe di percorso file sia oggetti 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);Pipeline in memoria
Per le pipeline in memoria che evitano file temporanei, usa ByteArrayOutputStream per catturare l’output del documento, quindi avvolgi con ByteArrayInputStream per l’elaborazione a valle:
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);I/O della facciata
Tutte le classi facciata (ad es. PdfAnnotationEditor, PdfContentEditor, PdfFileSecurity) seguono lo stesso schema bind-operate-save e accettano percorsi file, stream o un oggetto Document tramite il loro metodo bindPdf().