.NET 3.5 - открыть PDF прямо из потока в родной программе просмотра - PullRequest
1 голос
/ 21 сентября 2010

Я работаю над проектом WinForms C # 3.0 / .NET 3.5, включающим создание некоторых стандартных отчетов.Одним из требований проекта является экспорт в формат PDF, и в настоящее время работа на диск работает нормально.Однако возник вопрос, возможно ли экспортировать файл в поток и открыть его непосредственно в собственном средстве просмотра на клиенте, пропуская полную запись его на диск.Я знаю, что это возможно в ASP.Net благодаря использованию заголовков Response.Write () и тому подобного, но мне нужно попытаться сделать это со стандартными WinForms / WPF, и я исчерпал свои собственные идеи для этого.У кого-нибудь есть понимание того, как это можно сделать, если это вообще возможно?Или файл нужно сначала записать на диск, а затем открыть отдельно?

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010

Я думаю, важно, чтобы вы спросили себя, чего вы добьетесь, если обойдете файловую систему. Запись в стандартную временную папку является вполне приемлемым решением. Как правило, именно так браузеры позволяют просматривать мультимедийные файлы и PDF-файлы. Я бы сосредоточился на написании хорошей функции очистки, которая удаляет временный файл после его создания. Кроме того, какова будет цель экспорта в PDF, если вы не сохраняете файл?

В Unix / Linux вы могли бы создать именованный канал в файловой системе. Это имеет смысл, если у вас есть огромный медиа-поток, который вы хотите буферизовать между приложениями. В случае с PDF вы выигрываете очень мало.

Экспорт во временную папку. Это нормально.

2 голосов
/ 21 сентября 2010

Вам нужно будет записать PDF во временную директорию.

Единственный способ отобразить PDF из потока в памяти - это вставить сторонний элемент управления для просмотра PDF

...