Генерация PDF на основе сервера .NET

Я хотел бы динамически генерировать контент, а затем отображать его в файл PDF. Эта обработка будет происходить на удаленном хост-сервере, поэтому использование виртуальных принтеров и т. д. исключено. Есть ли у кого-нибудь рекомендация для библиотеки .NET (предпочтительно С#), которая будет работать?

Я знаю, что могу сгенерировать кучу PS-кода и упаковать его самостоятельно, но на данном этапе я бы предпочел что-то менее сложное.

Спасибо!


person J Evans    schedule 16.01.2009    source источник


Ответы (11)


Я успешно использовал SharpPDF.

person D'Arcy Rittich    schedule 16.01.2009
comment
Спасибо. Я проверяю это. - person J Evans; 16.01.2009
comment
Правильно - это выглядит достаточно просто, чтобы использовать его сразу. Делает таблицы и изображения, и это здорово. Спасибо Орбман. - person J Evans; 16.01.2009

Взгляните на http://itextsharp.sourceforge.net/. Его исходный код с открытым исходным кодом.
Учебное пособие: http://itextdocs.lowagie.com/tutorial/.

person Akshay    schedule 16.01.2009
comment
Я сам использую этот, и это здорово. Приятно то, что он также позволяет вам добавлять пароли к существующим файлам PDF, чего я не смог найти в некоторых других библиотеках. - person Dillie-O; 16.01.2009
comment
Я тоже использовал itextsharp в прошлом. Это отлично, насколько я помню. Кажется, я также пробовал .NET-версию PDFlib — очевидно, я не был так впечатлен, так как в итоге я сделал проект с itextsharp. - person Sampson; 16.01.2009
comment
Похоже, что последняя версия 2005 года и создана для .NET 1.1. Есть что-нибудь новее? - person Chris Ammerman; 16.01.2009
comment
@ Turbulent Intellect: последнее обновление: 25 мая 2008 г. (от: sourceforge.net/projects/itextsharp) - person Akshay; 16.01.2009
comment
Я использовал его в прошлом, и мне это нравилось. Однако API представляет собой беспорядок, поэтому ожидайте кривой обучения, выходящей за рамки вашего обычного API .NET. - person jcollum; 16.01.2009
comment
Спасибо. Не могу сказать сразу, но это похоже на компонент Java? - person J Evans; 16.01.2009
comment
@ G Forty — он перенесен на .Net из аналогичного компонента Java. Вот почему большинство руководств также написаны на Java. Но им не так уж сложно следовать. - person Akshay; 19.01.2009

Я добился успеха, используя Siberix

http://www.siberix.com/

Корпоративная лицензия: 350 долларов США (одна лицензия распространяется на неограниченное количество рабочих мест разработчика компании, неограниченное количество веб-серверов компании и неограниченное количество дистрибутивов в составе вашего приложения.)

person quimbo    schedule 16.01.2009
comment
quimbo227 - спасибо, тоже неплохо выглядит. я попробую - person J Evans; 17.01.2009
comment
К сожалению, Siberix Technologies прекратила свою деятельность 1 декабря 2014 года. - person splitDiff; 23.09.2015

Бесплатный PDF Generator .NET (оболочка WkHtmlToPdf) может создать красивый PDF-файл из HTML-шаблона с помощью одной строки кода. :

var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);

(все, что вам нужно, это одна DLL, никаких внешних зависимостей)

person Vitaliy Fedorchenko    schedule 09.09.2013

Мы используем Amyuni PDF Converter и успешно используем его уже несколько лет. Мы используем интерфейс COM, но он поддерживает интерфейс .NET.

person wageoghe    schedule 27.10.2010

У меня есть хороший опыт работы с преобразованием Winnovative HTML в PDF.

И плохие с Open Source HTML Doc (проблемы с элементами формы + CSS).

person rlb.usa    schedule 16.01.2009

Я давно искал высокопроизводительный инструмент для преобразования docx в pdf. Наша система имеет аспект электронного правительства и генерирует очень большое количество отчетов для сообщества пользователей. В этот момент производительность имеет первостепенное значение.

Более ранние инструменты, которые я использовал, не выполняли одновременное преобразование, вместо этого каждый exe-файл должен был ждать завершения другого. Я попробовал Aspose.words и очень доволен результатами.

Прежде всего, это было очень легко и просто интегрировать и развернуть в нашем проекте. Очень гладкий.

Во-вторых, скорость конвертации намного лучше из-за того, что несколько заданий выполняются параллельно.

В-третьих, не только быстро, но даже без ошибок форматирования. Учитывая, что мы предоставляем многоязычную систему, а некоторые отчеты включают поля как на английском, так и на арабском языке (обратите внимание на выравнивание справа налево!), это было очень важно.

И, наконец, размер файла был довольно маленьким, что опять же очень важно, так как через нашу систему создаются десятки тысяч документов.

Нашей первой реализацией была библиотека Microsoft Office Interop. Мы конвертируем документы docx в pdf, используя приведенный ниже код. Эта библиотека отлично конвертирует документы docx в файлы pdf, и мы решили загрузить ее на сервер генерации отчетов. Но через некоторое время мы заметили, что операции преобразования ждут каждого исполняемого файла. Это вызывает большую задержку при одновременном преобразовании документов, и поэтому мы начинаем искать новый инструмент для преобразования файлов docx в файлы pdf. см. изображение

В приведенном ниже коде показано, как преобразовать документы docx в файлы pdf с помощью инструмента Aspose.Words for .NET. см. изображение 2

person Emre Yilmaz    schedule 11.09.2018

RDLC и элементы управления Report Viewer могут генерировать PDF-файл либо по усмотрению клиента, либо по команде сервера, который затем может использоваться как MIME-тип PDF.

person Stephen Wrighton    schedule 16.01.2009
comment
Мы делаем это здесь (msdn.microsoft.com/en- us/library/ms251671(VS.80).aspx). Не слишком сложный в использовании, но обратите внимание, что он использует SQL Server 2005 Reporting Services для генерации на основе сервера (но не локальной генерации). - person lotsoffreetime; 16.01.2009
comment
Термин «сервер/локальный» немного неверен в отношении RDLC, обслуживаемого через ASP.NET. Локальное создание является локальным для приложения ASP.Net, в отличие от создания сервера, которое происходит на самом SQL Server. - person Stephen Wrighton; 16.01.2009

Я использовал PDF4NET от O2solutions с большим успехом. Они поддерживают всевозможные сценарии и цифровую подпись PDF.

person Community    schedule 16.01.2009

Если ваши данные в основном в формате XML, вы также можете рассмотреть решение XSL-FO — мы используем Alt- Xml2Pdf компании Soft с большим успехом. «Серверная» версия немного неверна — на самом деле это всего лишь одна DLL, которую вам нужно включить в ваше приложение Winforms, WPF или ASP.NET — вот и все!

Работает как шарм (если вы знакомы с XSLT и XSL-FO или хотите их изучить).

Марк

person marc_s    schedule 16.01.2009

Мы использовали набор сторонних библиотек DLL из PDFSharp которые, в свою очередь, используют библиотеки DLL от MigraDoc. Я не знаю всех причин, по которым мы пошли в этом направлении (решение было принято старшим разработчиком), но я могу сказать вам, что:

  • Похоже, он находится в активной разработке.
  • В нем было большинство функций, которые нам нужны.
  • Исходный код доступен. Хотя в нем использовались некоторые шаблоны и соглашения, которых я раньше не видел, как только я их освоил, вносить изменения было довольно легко. Я добавил поддержку для использования System.Drawing.Image напрямую, а не для сохранения файлов.
  • Это плохо документировано ни внутри, ни снаружи.
person Robert Gowland    schedule 16.01.2009