Средство визуализации HTML в PDF с открытым исходным кодом и полной поддержкой CSS

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

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

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


person Adam Haile    schedule 10.01.2009    source источник
comment
Единственное, о чем я могу думать, это решение на Python: htmltopdf.org: S   -  person bchhun    schedule 10.01.2009
comment
Почему вы ответили в комментарии?   -  person bentford    schedule 13.05.2010
comment
Поскольку существует так много вопросов, похожих на этот, но не совсем одинаковых, я решил попытаться собрать полный список конвертеров HTML в PDF в вики-вопрос сообщества stackoverflow.com/questions/3178448/   -  person rjmunro    schedule 05.07.2010
comment
Как мы проголосуем за повторное открытие этого вопроса? @Кев   -  person PeterX    schedule 17.05.2013
comment
Этот вопрос не по теме в SO, но актуален в softwarerecs.SE. См. раздел Как преобразовать HTML с помощью CSS в PDF?.   -  person Martin Thoma    schedule 21.09.2017


Ответы (6)


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

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

htmldoc --webpage -t pdf --size letter --fontsize 10pt index.html > index.pdf
person Norman Ramsey    schedule 10.01.2009
comment
не могли бы вы объяснить, как использовать эту библиотеку. любой код на С#/VB.net - person Bilal lilla; 03.05.2012
comment
@Bilal, как сказано в моем ответе, я всегда использовал его в командной строке, а не как библиотеку. - person Norman Ramsey; 06.05.2012
comment
просто напишите ту строку, которую вы используете для преобразования из html в pdf. - person Bilal lilla; 10.05.2012
comment
@NormanRamsey поддерживает ли он пользовательские шрифты TTF на основе языка RTL с помощью @fontface? - person Volatil3; 21.04.2013
comment
@mauvm исправил ссылку - person Norman Ramsey; 21.05.2015
comment
Ссылка битая, опять же. :\ - person Will Marcouiller; 25.04.2019

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

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

person isaac    schedule 30.09.2010
comment
На самом деле, у него также есть библиотечная версия, и я реализовал для него оболочку .NET github.com/gmanny/Pechkin (также на NuGet). - person Gman; 27.07.2012
comment
Я попробовал NuGet, и это здорово. Работает отлично. - person Dilhan Jayathilake; 16.05.2014
comment
Выдающийся! Я пробовал это против iTextSharp и AsposePDF. Aspose отображался ужасно для меня, и iTextSharp просто продолжал выдавать исключение за исключением. wkhtmltopdf сработал с первой попытки и все отлично отрендерил. - person Sean Chase; 13.11.2014
comment
Привносит ли это стиль и образы? - person Al Belmondo; 25.06.2015
comment
@AlBelmondo - он определенно учитывает CSS, определенный в блоке ‹style› заголовка. Существует параметр web.loadImages, который принимает значение true/false, но мне пока не удалось загрузить изображения. - person Peter Wone; 10.08.2015
comment
Библиотека tuesPechkin для wkhtmltopdf великолепна и безопасна для потоков, однако не может обрабатывать преобразования одновременно — что является моей текущей проблемой. - person VFein; 04.09.2015
comment
Также Rotativa тоже использует wkhtmltopdf под капотом, если я правильно понимаю. - person Guru Stron; 29.09.2015
comment
Наша библиотека IronPDF основана на большой работе, проделанной в wkhtmltopdf. CSS полностью поддерживается. IronPDF.com упрощает и ускоряет процесс добавления функций PDF в проект. - person Stephanie; 25.04.2018

Ты видишь :

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

person azerttyu    schedule 25.01.2010

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

person Pablo Ruiz García    schedule 05.10.2012

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

person Charlie Martin    schedule 10.01.2009
comment
Ага, и на выходе они ставят свой логотип - person Levitikon; 14.10.2011
comment
Этот ответ следует удалить. Спрашивающий явно просит средство визуализации с открытым исходным кодом. - person Christian Neverdal; 28.07.2016
comment
Да, дорогой, давайте начнем беспокоиться об ответах семилетней давности на закрытые вопросы. - person Charlie Martin; 28.07.2016
comment
Хорошо, теперь давайте побеспокоимся о вопросах ДЕСЯТИЛЕТНЕЙ СТАРНОСТИ. - person Charlie Martin; 22.02.2018

Попробуйте 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

person AffineMesh    schedule 27.04.2010
comment
Не похоже, что стандартная версия больше бесплатна, лицензии для ABCpdf .NET всего от 329 долларов. - person Levitikon; 14.10.2011
comment
Бесплатная лицензия предлагается через рекламную схему. Если он исчезнет, ​​попробуйте поискать в Google «бесплатные лицензии websupergoo». Обратите внимание, что предложение распространяется только на одну лицензию. Если вам нужно приобрести лицензию или дополнительные лицензии, цена указана в Левитиконе. - person AffineMesh; 18.10.2011
comment
Да, @AffineMesh, не могли бы вы пересмотреть свой текст выше, сказав, что стандартную версию можно получить бесплатно. Или просто добавьте дополнительную заметку. Между прочим, я нахожу их лицензию несколько запутанной: Владелец предлагает вам неисключительную лицензию без права передачи на условиях настоящего Соглашения. Что это значит - я все еще должен получить один? - person PeterX; 17.05.2013