Я хочу создать PDF, передав содержимое HTML в функцию. Я использовал iTextSharp для этого, но он не работает хорошо, когда он сталкивается с таблицами и макет просто становится грязным.
Есть ли способ лучше?
c#
html
pdf
itextsharp
Амеди Ван Гасс
источник
источник
Ответы:
РЕДАКТИРОВАТЬ: Новое предложение HTML Renderer для PDF с использованием PdfSharp
(Попробовав wkhtmltopdf и предложив избежать этого)
HtmlRenderer.PdfSharp - это полностью управляемый на C # код , простой в использовании, поточно-ориентированный и, что наиболее важно, БЕСПЛАТНЫЙ ( Новая лицензия BSD ) .
Применение
Используйте пример метода.
Очень хороший Alternate Есть бесплатная версия из iTextSharp
До версии 4.1.6 iTextSharp был лицензирован по лицензии LGPL, а версии до 4.16 (или могут быть также вилки) доступны в виде пакетов и могут свободно использоваться. Конечно, кто-то может использовать платную версию 5+ .
Я попытался интегрировать решения wkhtmltopdf в свой проект, и у меня было много препятствий.
Лично я бы не использовал решения на основе wkhtmltopdf в приложениях Hosted Enterprise по следующим причинам.
--- PRE Редактировать раздел ---
Для тех, кто хочет создавать PDF из HTML в более простых приложениях / средах, я оставляю свой старый пост в качестве предложения.
TuesPechkin
https://www.nuget.org/packages/TuesPechkin/
или особенно для веб-приложений MVC (но я думаю, что вы можете использовать его в любом приложении .net)
Rotativa
https://www.nuget.org/packages/Rotativa/
Они оба используют двоичный файл wkhtmtopdf для преобразования html в pdf. Который использует движок webkit для рендеринга страниц, поэтому он также может анализировать таблицы стилей CSS .
Они обеспечивают простую в использовании бесшовную интеграцию с C #.
Rotativa также может создавать PDF-файлы напрямую из любого Razor View.
Кроме того, для реальных веб-приложений они также управляют безопасностью потоков и т. Д.
источник
Обновление: я бы порекомендовал PupeteerSharp поверх wkhtmltopdf.
Попробуйте wkhtmtopdf . Это лучший инструмент, который я нашел до сих пор.
Для .NET вы можете использовать эту небольшую библиотеку, чтобы легко вызывать утилиту командной строки wkhtmtopdf.
источник
Я недавно выполнил PoC относительно преобразования HTML в PDF и хотел поделиться своими результатами.
Мой любимый на данный момент OpenHtmlToPdf
Преимущества этого инструмента:
Другие проверенные инструменты:
источник
using IronPdf; IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf(); // Render an HTML document or snippet as a string Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>").SaveAs("html-string.pdf");
background-color
. OpenHtmlToPdf отлично работает бесплатно.Последнее обновление: март 2020
Это список вариантов преобразования HTML в PDF в .NET, которые я собрал (некоторые бесплатные, некоторые платные)
GemBox.Document
PDF Метаморфоза .Net
HtmlRenderer.PdfSharp
PuppeteerSharp
EO.Pdf
WnvHtmlToPdf_x64
IronPdf
Spire.PDF
Бесплатный Spire.PDF для .NET (версия для сообщества)
Aspose.Html
EvoPDF
ExpertPdfHtmlToPdf
Zetpdf
PDFtron
WkHtmlToXSharp
SelectPDF
Если ни один из перечисленных выше вариантов не поможет вам, вы всегда можете выполнить поиск пакетов NuGet https://www.nuget.org/packages?q=html+pdf
источник
Большинство конвертеров HTML в PDF использует IE для анализа и рендеринга HTML. Это может сломаться, когда пользователь обновляет свой IE. Вот тот, который не полагается на IE.
Код выглядит примерно так:
Как и многие другие конвертеры, вы можете передавать текст, имя файла или URL. Результат может быть сохранен в файл или поток.
источник
Я очень рекомендую NReco , серьезно. Он имеет бесплатную и платную версию, и действительно стоит того. Он использует wkhtmtopdf в фоновом режиме, но вам нужна только одна сборка. Фантастический.
Пример использования:
Установить через NuGet .
Отказ от ответственности: я не разработчик, просто фанат проекта :)
источник
Winnovative предлагает библиотеку .Net PDF, которая поддерживает ввод HTML. Они предлагают неограниченную бесплатную пробную версию . В зависимости от того, как вы хотите развернуть свой проект, этого может быть достаточно.
источник
Основные PDF могут быть использованы для преобразования HTML в PDF : C # образец . Приведенный здесь пример основан на ASP.NET, но библиотеку можно использовать из Windows Forms, WPF, ASP.NET Webforms и ASP.NET MVC. Библиотека предлагает возможность использования различных механизмов рендеринга HTML: Internet Explorer (по умолчанию) и WebKit (лучший вывод).
Весь набор элементов управления доступен бесплатно (коммерческие приложения также) через лицензионную программу сообщества, если вы подходите. Лицензия сообщества является полным продуктом без ограничений и водяных знаков.
Примечание: я работаю на Syncfusion.
источник
Если вам действительно не нужна настоящая библиотека .Net PDF, существует множество бесплатных инструментов HTML в PDF , многие из которых могут запускаться из командной строки.
Одним из решений было бы выбрать один из них, а затем написать тонкую обертку вокруг этого в C #. Например, как сделано в этом уроке .
источник
Я использовал ExpertPDF Html To Pdf Converter . Делает достойную работу. К сожалению, это не бесплатно.
источник
Также есть новое веб-приложение для создания документов - DocRaptor.com . Кажется простым в использовании, и есть бесплатный вариант.
источник
Обновление 2018 года, и давайте использовать стандартное уравнение HTML + CSS = PDF!
Есть хорошие новости для требований HTML-PDF. Как показал этот ответ , стандарт W3C css-break-3 решит проблему ... Это рекомендация кандидата, которая после испытаний должна превратиться в окончательную рекомендацию в 2017 или 2018 году.
В качестве нестандартных решений существуют плагины для C #, как показано в print-css.rocks .
источник
Вы можете использовать функцию Google Chrome print-to-pdf в режиме без головы. Я обнаружил, что это самый простой, но самый надежный метод.
источник
ABCpdf.NET (http://www.websupergoo.com/abcpdf-5.htm)
Мы используем и рекомендуем.
Очень хороший компонент, он не только конвертирует веб-страницу в PDF как изображение, но и действительно конвертирует текст, изображение, форматирование и т. Д.
Это не бесплатно, но это дешево.
источник
Я являюсь автором пакета Rotativa. Это позволяет создавать PDF файлы прямо из бритвы:
https://www.nuget.org/packages/Rotativa/
Тривиально использовать, и вы имеете полный контроль над макетом, поскольку вы можете использовать бритвенные представления с данными из контейнера Model и ViewBag.
Я разработал версию SaaS для Azure. Это делает его еще проще использовать из WebApi или любого приложения .Net, службы, веб-сайта Azure, веб-задания Azure, независимо от того, что работает .Net.
http://www.rotativahq.com/
Доступны бесплатные аккаунты.
источник
Ниже приведен пример преобразования html + css в PDF с использованием iTextSharp (iTextSharp + itextsharp.xmlworker)
источник
Это зависит от любых других ваших требований.
Действительно простое, но не легко развертываемое решение - использовать элемент управления WebBrowser для загрузки Html, а затем использовать метод Print для печати на локально установленном PDF-принтере. Доступно несколько бесплатных PDF-принтеров, а элемент управления WebBrowser является частью .Net Framework.
РЕДАКТИРОВАТЬ: Если ваш HTML является XHtml, вы можете использовать PDFizer, чтобы сделать работу.
источник
PDF Vision это хорошо. Тем не менее, вы должны иметь полное доверие, чтобы использовать его. Я уже написал по электронной почте и спросил, почему мой HTML не конвертировался на сервере, но он работал нормально на localhost.
источник
Я нашел следующую библиотеку более эффективной в преобразовании HTML в PDF.
nuget : https://www.nuget.org/packages/Select.HtmlToPdf/
источник
Я также искал это некоторое время назад. Я наткнулся на HTMLDOC http://www.easysw.com/htmldoc/, который представляет собой бесплатное приложение командной строки с открытым исходным кодом, которое принимает файл HTML в качестве аргумента и выкладывает из него PDF-файл. Это хорошо сработало для моего сайд-проекта, но все зависит от того, что вам действительно нужно.
Компания, которая делает это, продает скомпилированные двоичные файлы, но вы можете свободно скачивать и компилировать из исходного кода и использовать его бесплатно. Мне удалось скомпилировать довольно недавнюю ревизию (для версии 1.9), и я собираюсь выпустить бинарный установщик для нее через несколько дней, поэтому, если вам интересно, я могу предоставить ссылку на нее, как только я опубликую ее.
Изменить (25.02.2014): Похоже, документы и сайт переехали на http://www.msweet.org/projects.php?Z1
источник
Вам нужно использовать коммерческую библиотеку, если вам нужен отличный рендеринг HTML в формате PDF.
ExpertPdf Html To Pdf Converter очень прост в использовании и поддерживает новейшие html5 / css3. Вы можете конвертировать весь URL в PDF:
или строка HTML:
У вас также есть возможность напрямую сохранить сгенерированный PDF-файл в файл потока на диске.
источник
Это бесплатная библиотека, которая работает очень легко: OpenHtmlToPdf
источник
Похоже, что лучшим бесплатным решением для .NET является библиотека ВтПечкин, которая является оболочкой для собственной библиотеки wkhtmltopdf .
Теперь я использовал однопоточную версию для преобразования нескольких тысяч HTML-строк в PDF-файлы, и это, кажется, прекрасно работает. Он также должен работать в многопоточных средах (например, IIS), но я этого не проверял.
Кроме того, поскольку я хотел использовать последнюю версию wkhtmltopdf (0.12.5 на момент написания), я загрузил DLL с официального сайта, скопировал ее в корневой каталог своего проекта, установил для параметра copy значение true и инициализировал библиотеку следующим образом: так:
Приведенный выше код будет искать именно «wkhtmltox.dll», поэтому не переименовывайте файл. Я использовал 64-битную версию DLL.
Обязательно прочитайте инструкции для многопоточных сред, так как вам придется инициализировать его только один раз за жизненный цикл приложения, поэтому вам нужно будет поместить его в одиночный файл или что-то в этом роде.
источник
Вот обертка для wkhtmltopdf.dll от pruiz
И обертка для wkhtmltopdf.exe от Codaxy
- тоже на nuget .
источник
No tests are run because no tests are loaded or the selected tests are disabled
поиск в Google тоже не помогаетЛучший инструмент, который я нашел и использовал для генерации PDF javascript и стилей визуализированных представлений или html страниц, - это phantomJS .
Загрузите файл .exe с помощью функции rasterize.js, находящейся в корне exe примера папки, и поместите в решение.
Он даже позволяет загружать файл в любом коде, не открывая этот файл, а также позволяет загружать файл, когда применяются стили и особенно jquery.
Следующий код генерирует PDF-файл:
источник
Вы также можете проверить Spire , он позволяет создавать
HTML to PDF
с помощью этого простого куска кодаПодробная статья: Как конвертировать HTML в PDF в asp.net C #
источник
Как представитель HiQPdf Software, я считаю, что лучшим решением является HiQPdf HTML в PDF конвертер для .NET . Он содержит самый продвинутый движок рендеринга HTML5, CSS3, SVG и JavaScript на рынке. Существует также бесплатная версия библиотеки HTML to PDF, которую вы можете бесплатно использовать для создания до 3 страниц PDF. Минимальный код C # для создания PDF-файла в виде байта [] на HTML-странице:
Более подробные примеры, как для ASP.NET, так и для MVC, можно найти в репозитории примеров конвертера HTML в PDF HiQPdf .
источник
Вполне вероятно, что большинство проектов будут использовать C / C ++ Engine, а не реализовывать решение C # с нуля. Попробуйте проект Gotenberg .
Чтобы проверить это
Пример Curl
C # sample.cs
Компилировать
источник
Попробуйте этот компонент преобразования PDF Duo .Net для преобразования HTML в PDF из приложения ASP.NET без использования дополнительных библиотек DLL.
Вы можете передать строку или файл HTML или поток для создания PDF. Используйте код ниже (пример C #):
Примеры Info + C # / VB вы можете найти по адресу: http://www.duodimension.com/html_pdf_asp.net/component_html_pdf.aspx
источник
Для преобразования HTML в PDF в C # используйте ABCpdf .
ABCpdf может использовать механизмы рендеринга Gecko или Trident, поэтому ваша HTML-таблица будет выглядеть так же, как в FireFox и Internet Explorer.
На сайте www.abcpdfeditor.com размещена демонстрационная версия ABCpdf. Вы можете использовать это, чтобы проверить, как ваши таблицы будут отображаться первыми, без необходимости загружать и устанавливать программное обеспечение.
Для рендеринга целых веб-страниц вам понадобятся функции AddImageUrl или AddImageHtml. Но если все, что вам нужно, это просто добавить текст в стиле HTML, тогда вы можете попробовать функцию AddHtml, как показано ниже:
ABCpdf - это название коммерческого программного обеспечения, однако стандартное издание часто можно получить бесплатно по специальному предложению.
источник
However, you must disclose your affiliation with the product in your answers. Also, if a huge percentage of your posts include a mention of your product, you're clearly here for the wrong reasons.
часто задаваемых