Операции по вводу/вывозу данных
Вводные/выводческие модели
Aspose.PDF FOSS for Java consistently accepts both file paths and Java streams as вход и выход во всех основных API, включая: Document, PdfFileEditor,И все . фасадные классы.
Документ ввода/вывоза
В связи с этим 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);В/В фасада
Все классы фасадов (например,. PdfAnnotationEditor, PdfContentEditor, PdfFileSecurity) следуют той же схеме bind-operate-save и принимают пути файлов, потоки или Document объекта через их bindPdf() метод.