Используйте System.Drawing.Printing.PrintDocument для создания PDF в памяти - PullRequest
6 голосов
/ 04 января 2010

Кто-нибудь знает, возможно ли следующее, и если да, то какой лучший способ сделать это бесплатно?

Я создаю PrintDocument в проекте, над которым я сейчас работаю, и отображаю диалоговое окно печати, чтобы пользователь мог выбрать, какой принтер он хочет использовать и т. Д. В настоящее время это приложение Windows Form, и если пользователь хочет печатать PDF, который они могут выбрать для печати в CutePDF или что-то подобное.

Однако сейчас я добавляю веб-интерфейс ASP.Net в приложение и хочу использовать тот же код для создания PrintDocument, но хочу напечатать его в формате PDF на лету и подать его через поток ответов в формате загрузки в формате PDF.

Итак, мой вопрос ... Как я могу использовать текущий PrintDocument и генерировать из него PDF в памяти ??

Спасибо

Ответы [ 6 ]

2 голосов
/ 10 мая 2010

Код System.Drawing для PrintDocument можно повторно использовать для создания документа PDF с ABCpdf .NET См. System.Drawing пример ...

0 голосов
/ 21 января 2010

Вы действительно должны смотреть на iTextSharp (это упоминается на странице iText.NET, рекомендованной ранее)

http://itextsharp.sourceforge.net/

PrintDocument предназначен для приложений Windows Forms, но уже есть в SilverLight, смотрите это видео ... http://silverlight.net/learn/videos/all/printing-api-basics/

Если вы хотите продолжить работу с PrintDocument и веб-приложением, я думаю, что SilverLight 4 (который сейчас является бета-версией) - это единственный путь, или вы должны иметь локально установленное приложение для облегченной формы Windows для конечный пользователь, который, возможно, использует веб-сервисы.

iTextSharp - отличный инструмент для создания PDF-файлов с помощью .NET в Интернете. Я очень рекомендую это; Я использовал iText с Java ... и использую iTextSharp в течение последних нескольких лет.

0 голосов
/ 05 января 2010

Я думаю, вы обнаружите, что нет никаких инструментов, которые будут использовать PrintDocument в качестве входных данных и отображать PDF в качестве выходных данных. Единственный способ сделать то, что вы хотите, это «распечатать» PrintDocument на «драйвер принтера PDF», который будет генерировать PDF. В основном это виртуальный принтер, который будет генерировать PDF вместо печати фактического вывода. Для этого существует множество продуктов на рынке. Пара, которые дешевы и широко используются, следующие:

0 голосов
/ 04 января 2010

Вы находитесь в мире боли, если думаете, что собираетесь запустить «один и тот же код», который работает с принтерами как в приложении форм, так и в приложении ASP.NET.

Однако, возможно, вам повезло, так как PDFsharp + MigraDoc может сделать это за вас.

0 голосов
/ 04 января 2010

Существует несколько портов iText для .NET (очень популярная библиотека PDF с открытым исходным кодом для Java).

http://www.ujihara.jp/iTextdotNET/en/

0 голосов
/ 04 января 2010

Для создания PDF вам потребуется использовать сторонний компонент. В следующей статье есть ссылки на некоторые такие компоненты: Создание PDF-файлов из .Net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...