E/A-Operationen
I/O-Muster
Aspose.PDF FOSS für Java akzeptiert konsequent sowohl Dateipfade als auch Java-Streams als Eingabe und Ausgabe in allen wichtigen APIs, einschließlich Document, PdfFileEditor und aller Fassadenklassen.
Dokument-I/O
Die Document-Klasse akzeptiert im Konstruktor einen Dateipfad-String oder ein InputStream. Die save()-Methode akzeptiert einen Dateipfad-String oder ein 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);
}Beide Konstruktoren laden das gesamte Dokument in den Speicher. Bei großen Dokumenten sollten Sie für ausreichenden Heap-Speicher sorgen oder die Verwendung von PdfFileEditor.setUseDiskBuffer(true) in Betracht ziehen.
PdfFileEditor Stream-Unterstützung
PdfFileEditor-Operationen akzeptieren sowohl Dateipfad-Strings als auch Java InputStream/OutputStream-Objekte:
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);In-Memory-Pipelines
Für in-memory-Pipelines, die temporäre Dateien vermeiden, verwenden Sie ByteArrayOutputStream, um die Dokumentausgabe zu erfassen, und wickeln Sie sie dann mit ByteArrayInputStream für die nachgelagerte Verarbeitung ein:
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);Fassade I/O
Alle Facade-Klassen (z.B. PdfAnnotationEditor, PdfContentEditor, PdfFileSecurity) folgen dem gleichen Bind-Operate-Save-Muster und akzeptieren Dateipfade, Streams oder ein Document-Objekt über ihre bindPdf()-Methode.