Как сгенерировать PDF-документ в байтах данных (или двоичных данных) в памяти без создания (или сохранения) файла?
Я новичок в PDF Clown и, взглянув на примеры, включенные в его дистрибутив, я заметил, что они используют file = new org.pdfclown.files.File(path)
чтобы создать новые файлы PDF, затем file.Save(anotherPath)
чтобы сохранить их в файловой системе, но я не смог найти ни одного примера, который позволил бы мне генерировать PDF-документы и сохранять их в байтовом массиве для хранения в оперативной памяти.
По сути, мы передаем входные данные наших клиентов в PDF-документ, генерируем их в памяти, затем прикрепляем к электронным письмам или сохраняем в базу данных без необходимости в промежуточном дисковом хранилище.
1 ответ
Это правильный способ сохранить файл в поток памяти (C#):
org.pdfclown.files.file = . . .;
. . .
var targetStream = new System.IO.MemoryStream();
file.Save(new org.pdfclown.bytes.Stream(targetStream), SerializationModeEnum.Standard);
В ближайшие несколько дней я добавлю в репозиторий проекта (версия 0.1.2.1 или новее) упрощенную перегрузку, так что вы можете просто сделать это:
var targetStream = new System.IO.MemoryStream();
file.Save(targetStream, SerializationModeEnum.Standard);
Почему мы использовали org.pdfclown.bytes.Stream
фантик в первом Save
метод? Поскольку PDF Clown реализован на нескольких платформах (Java, .NET), ему необходим абстрактный общий интерфейс для согласованной работы с вводом-выводом и упрощения разработки и обслуживания кода на этих платформах.
PS: Если вас интересуют последние новости о PDF Clown, не пропустите подписку на твиттер!