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.

Siehe auch

 Deutsch