Operacje I/O
Wzorce I/O
Aspose.PDF FOSS dla Java konsekwentnie akceptuje zarówno ścieżki plików, jak i strumienie Java jako wejście i wyjście we wszystkich głównych API, w tym Document, PdfFileEditor oraz wszystkie klasy fasadowe.
I/O dokumentu
Klasa Document przyjmuje w konstruktorze ciąg ścieżki pliku lub InputStream. Metoda save() przyjmuje ciąg ścieżki pliku lub 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);
}Oba konstruktory wczytują cały dokument do pamięci. Dla dużych dokumentów zapewnij wystarczającą przestrzeń sterty lub rozważ użycie PdfFileEditor.setUseDiskBuffer(true).
PdfFileEditor Obsługa strumieni
Operacje PdfFileEditor akceptują zarówno ciągi ścieżek plików, jak i obiekty 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);Potoki w pamięci
Dla potoków w pamięci, które unikają plików tymczasowych, użyj ByteArrayOutputStream do przechwytywania wyjścia dokumentu, a następnie opakuj go w ByteArrayInputStream w celu dalszego przetwarzania:
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);Fasada I/O
Wszystkie klasy fasady (np. PdfAnnotationEditor, PdfContentEditor, PdfFileSecurity) stosują ten sam wzorzec bind-operate-save i akceptują ścieżki plików, strumienie lub obiekt Document poprzez ich metodę bindPdf().