WPF / iTextSharp: как отправить MemoryStream в Windows, чтобы он обрабатывал открытие PDF? - PullRequest
0 голосов
/ 05 апреля 2011

Я использую iTextSharp для создания PDF из HTML. Я могу сохранить файл PDF в порядке, но я хочу обработать PDF для ОС, чтобы открыть его, без необходимости сначала сохранять его на диск. Как я могу это сделать? Я делаю это из приложения WPF.

Вот мой код:

MemoryStream memoryStream = new MemoryStream();
TextReader reader = new StringReader(tb.Text);
Document document = new Document(PageSize.A4, 30, 30, 30, 30);
PdfWriter pdfWriter = PdfWriter.GetInstance(document, memoryStream);
HTMLWorker worker = new HTMLWorker(document);
document.Open();
worker.StartDocument();
worker.Parse(reader);
worker.EndDocument();
worker.Close();
pdfWriter.CloseStream = false;
document.Close();

Как я могу "материализовать" memoryStream.ToArray () в файл .pdf (в памяти) и отправить его в Windows?

1 Ответ

1 голос
/ 05 апреля 2011

«Отправить в Windows» ничего не значит.Только процесс знает, как обращаться с документом PDF.Как Adobe Acrobat.Процесс бесполезен для того, что вы храните в памяти, он не может получить к нему доступ.Нужен файл.Это не проблема в Windows, когда вы записываете файл, вы сначала записываете в память.Кеш файловой системы.В Windows разница между диском и памятью очень мала, что является важной конструктивной особенностью операционной системы.

...