Создать PDF-документ в asp.net 2.0 - PullRequest
4 голосов
/ 16 июля 2010

Я использую asp.net 2.0 с c #.

Я должен конвертировать текст метки в pdf. Для этого я использовал этот учебник http://www.codeproject.com/KB/aspnet/Creating_PDF_documents_in.aspx

Теперь я столкнулся с двумя проблемами:

  1. Каждый раз, когда он создает 1.pdf, что, если так много пользователей хотят видеть формат PDF любой страницы
  2. Поскольку текст моей метки содержит контент HTML, он показывает вывод HTMl. Я не хочу, чтобы HTML отображался в формате PDF.

Пожалуйста, дайте мне знать, если у вас есть какой-либо другой способ создания PDF.

Заранее спасибо.

Ответы [ 8 ]

2 голосов
/ 16 июля 2010

Создание PDF с содержимым в формате HTML не совсем тривиально, и пример кода CodeProject не совсем подходит для этого. Вы, скорее всего, захотите найти (коммерческое) стороннее решение для этого: я сам использую Siberix Report Writer : он гибкий, довольно доступный, работает в сценариях частичного доверия (хорошо для общего веб среды хостинга) и, что самое важное, не требует лицензии на сервер, поэтому вы можете встраивать ее в свой продукт без проблем с перераспределением.

1 голос
/ 16 июля 2010

Элемент 1) Вы кэшируете свои PDF-файлы на диск. Когда делается запрос на pdf, проверьте, был ли создан pdf (то есть имеется ли файл на диске), и если нет, сгенерируйте его. Затем отправьте pdf с помощью команды response.writefile

Элемент 2) Если вы пытаетесь напечатать отформатированный html в pdf, вам понадобится что-то, способное рендерить html. Существует несколько конвертеров html в pdf, но я не нашел их такими хорошими. Если вам не безразличен php, есть несколько хороших конвертеров, которые вы можете использовать. Joomla поддерживает html в pdf, хотя, возможно, это и не точное решение, но и хорошая отправная точка.

0 голосов
/ 21 июля 2010

Вы можете попробовать библиотеку itextsharp. Я не использовал это, но это было высоко оценено другими разработчиками, которых я знаю. http://sourceforge.net/projects/itextsharp/

По вопросу кеширования. Я бы проверил файловую систему на pdf, названный по соглашению. Если файл найден, подайте его. В противном случае вызовите другой метод, который генерирует файл PDF и сохраняет его на диске. Таким образом, только первый запрос вызовет генерацию PDF. Соглашения об именах будут ключевыми здесь. Базовая реализация не будет поточно-ориентированной. Но это хорошее начало.

0 голосов
/ 20 июля 2010

ABCpdf - это еще один коммерческий компонент, который преобразует HTML в PDF. http://www.websupergoo.com/abcpdf-5.htm

0 голосов
/ 20 июля 2010

Cete Pdf Generator имеет элемент HtmlTextArea и поддерживает некоторые ограниченные HTML

http://www.cete.com/support/net_help_library/html/ceTeDynamicPDFPageElementsHtmlTextArea.htm

0 голосов
/ 19 июля 2010

Я бы предложил использовать RDLC Report или Crystal Reports, как предложено @ Jeroen

0 голосов
/ 18 июля 2010

Я бы также посоветовал вам взглянуть на Aspose PDF.

0 голосов
/ 16 июля 2010

Я использую CrystalReports.Он может создавать PDF на лету и выводить его на диск или напрямую в http.

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