Open Source HTML to PDF Renderer с полной поддержкой CSS

Я спросил о том, как заставить iTextSharp отображать PDF-файл из HTML и CSS-лист до здесь, но похоже, что это может быть невозможно ... Так что, думаю, мне придется попробовать что-то еще.

Есть ли библиотека .NET / C# с открытым исходным кодом, которая может принимать HTML а также CSS в качестве входных данных и правильно отображать их?

Я должен повторить ... библиотека ДОЛЖНА быть бесплатной и желательно с довольно либеральной лицензией. Я работаю здесь практически без бюджета.

Единственное, о чем я могу думать, это решение на Python: htmltopdf.org: S

bchhun 10.01.2009 08:12

Почему вы ответили в комментарии?

bentford 13.05.2010 01:28

Поскольку существует так много вопросов, похожих на этот, но не совсем одинаковых, я решил попытаться собрать полный список конвертеров HTML в PDF в вопрос сообщества вики stackoverflow.com/questions/3178448/…

rjmunro 05.07.2010 16:57

Как мы проголосуем за повторное открытие этого вопроса? @Kev

PeterX 17.05.2013 03:56

Этот вопрос не по теме в SO, но по теме в softwarerecs.SE. См. Как преобразовать HTML с помощью CSS в PDF?.

Martin Thoma 21.09.2017 18:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
62
5
114 319
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Я всегда использовал его в командной строке, а не как библиотеку, но HTMLDOC дает мне отличные результаты, и он обрабатывает как минимум некоторый CSS (я не мог легко понять, сколько).

Вот пример командной строки

htmldoc --webpage -t pdf --size letter --fontsize 10pt index.html > index.pdf

не могли бы вы объяснить, как использовать эту библиотеку. любой код на C# / VB.net

Bilal lilla 03.05.2012 09:47

@Bilal, как сказано в моем ответе, Я всегда использовал его в командной строке, а не как библиотеку.

Norman Ramsey 06.05.2012 06:12

просто напишите ту строку, которую вы используете для преобразования из HTML в PDF.

Bilal lilla 10.05.2012 15:42

@NormanRamsey поддерживает ли он настраиваемые шрифты TTF на основе языка RTL с помощью @fontface?

Volatil3 21.04.2013 17:14

@mauvm исправил ссылку

Norman Ramsey 21.05.2015 00:52

Снова разорванная ссылка. : \

Will Marcouiller 25.04.2019 00:47

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

Да, и они ставят свой логотип на выход

Levitikon 14.10.2011 01:47

Этот ответ следует удалить. Автор вопроса - четко, запрашивающий рендерер с открытым исходным кодом.

Christian Neverdal 28.07.2016 15:00

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

Charlie Martin 28.07.2016 17:30

Хорошо, давайте теперь поговорим о ДЕСЯТИЛЕТНИХ вопросах.

Charlie Martin 22.02.2018 18:15

Ты видишь :

Они выглядят как PrinceXML

Попробуйте ABCpdf из webSupergoo. Это коммерческое решение, не с открытым исходным кодом, но стандартную версию можно получить бесплатно, и она будет делать то, что вы просите.

ABCpdf полностью поддерживает HTML и CSS, живые формы и живые ссылки. Он также использует основные службы Microsoft XML (MSXML) при рендеринге, поэтому результаты должны точно соответствовать тому, что вы видите в Internet Explorer.

Онлайн-демонстрация может использоваться для тестирования рендеринга HTML в PDF без необходимости установки какого-либо программного обеспечения. См .: http://www.abcpdfeditor.com/

В следующем примере кода C# показано, как визуализировать одностраничный HTML-документ.

Doc theDoc = new Doc();
theDoc.AddImageUrl("http://www.example.com/");
theDoc.Save("htmlimport.pdf");
theDoc.Clear();

Для рендеринга нескольких страниц вам понадобится функция AddImageToChain, описанная здесь: http://www.websupergoo.com/helppdf7net/source/5-abcpdf6/doc/1-methods/addimagetochain.htm

Не похоже, что стандартная версия больше бесплатна: «Лицензии на ABCpdf .NET всего за 329 долларов».

Levitikon 14.10.2011 01:51

Бесплатная лицензия предлагается по рекламной схеме. Если он исчезнет, ​​попробуйте поискать в Google «бесплатные лицензии websupergoo». Обратите внимание, что предложение распространяется только на одну лицензию. Если вам необходимо приобрести лицензию или дополнительные лицензии, цена будет такой, как сказал Левитикон.

AffineMesh 18.10.2011 14:00

Да, @AffineMesh, не могли бы вы отредактировать текст выше, сказав, что «стандартную версию можно получить бесплатно». Или просто добавьте дополнительную заметку. Кстати, их лицензия меня несколько сбивает с толку: «Владелец предлагает вам неисключительную, не подлежащую передаче лицензию на условиях настоящего Соглашения». Что это значит - мне все еще нужно его получить?

PeterX 17.05.2013 03:42

Этот инструмент командной строки - это бизнес! https://wkhtmltopdf.org/

Он использует движок рендеринга webkit (используемый в Safari и KDE), я тестировал его на некоторых сложных сайтах, и он был намного лучше любого другого инструмента.

Фактически, у него также есть версия библиотеки, и я реализовал для нее .NET-оболочку github.com/gmanny/Pechkin (также на NuGet).

Gman 27.07.2012 18:24

Я попробовал NuGet, и это здорово. Прекрасно работает.

Dilhan Jayathilake 16.05.2014 09:38

Выдающийся! Я пробовал это против iTextSharp и AsposePDF. Aspose был ужасен для меня, и iTextSharp просто продолжал генерировать исключение за исключением. wkhtmltopdf сработал с первой попытки и все отлично прорисовал.

Sean Chase 13.11.2014 21:32

Приносит ли это стиль и образы?

Al Belmondo 25.06.2015 20:11

@AlBelmondo - определенно соблюдает CSS, определенный в блоке заголовка <style>. Существует параметр web.loadImages, который принимает значение true / false, но мне еще не удалось загрузить изображения.

Peter Wone 10.08.2015 04:11

Библиотека tuesPechkin для wkhtmltopdf великолепна и потокобезопасна, однако не может обрабатывать преобразования одновременно - это моя текущая проблема.

VFein 04.09.2015 16:58

Также Rotativa использует wkhtmltopdf под капотом, если я правильно понимаю.

Guru Stron 29.09.2015 15:37

Наша библиотека IronPDF основана на большой работе, проделанной в wkhtmltopdf. CSS полностью поддерживается. IronPDF.com делает процесс добавления функций PDF в проект быстрым и легким.

Stephanie 25.04.2018 08:28

Вы можете попробовать мою оболочку wkhtmltopdf: https://github.com/pruiz/WkHtmlToXSharp;)

Другие вопросы по теме