Создайте PDF из HTML, используя TheArtOfDev.HtmlRenderer.PdfSharp

Мне нужно преобразовать хорошо отформатированную строку HTML в документ PDF.

Я нашел эту DLL, которая должна делать то, что мне нужно, но она не работает нормально с форматированием.

Это код HTML, который я пытаюсь преобразовать, и просмотр его в браузере работает нормально (я использовал Bootstrap CSS, на который правильно ссылаются как на cdn).

введите здесь описание изображения

Но после преобразования в PDF это результат: введите здесь описание изображения

И это код, который я использую для его преобразования:

        string html = "";

        if (File.Exists(pathIN))
        {
            html = File.ReadAllText(pathIN);
        }

        PdfDocument pdfDocument = new PdfDocument();
        PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.A4, 60);
        pdf.Save(pathOUT);

У кого-нибудь есть предложения?


person Michele Ietri    schedule 13.01.2017    source источник
comment
Может быть, вы должны попытаться составить html, чтобы он помещался на A4. Вы пробовали распечатать его в PDF из браузера? Как выглядит результат?   -  person Hexo    schedule 13.01.2017
comment
это прекрасно работает ссылка   -  person Michele Ietri    schedule 13.01.2017
comment
Возможно, библиотека не может правильно его отобразить. Как вы строили html? Это простая таблица или вы используете множество CSS?   -  person Hexo    schedule 13.01.2017
comment
это сделано с использованием начальной загрузки, здесь вы можете найти весь исходный код html   -  person Michele Ietri    schedule 13.01.2017
comment
Если java-скрипты важны, позвольте мне сказать вам, что механизм рендеринга не сможет их использовать.   -  person Hexo    schedule 13.01.2017
comment
на самом деле эти javascripts даже не используются   -  person Michele Ietri    schedule 13.01.2017
comment
я бы сказал, что это css   -  person Hexo    schedule 13.01.2017
comment
Я не мог заставить этот пакет nuget работать со стилем начальной загрузки. В итоге я остановился на wkhtmltopdf и с тех пор не оглядывался назад.   -  person Mathemats    schedule 19.07.2017


Ответы (4)


Попробуйте использовать https://wkhtmltopdf.org, это хорошо работает для страниц начальной загрузки.

person Niran Manandhar    schedule 21.03.2017

У меня также были проблемы с этим при использовании HtmlRenderer/PdfSharp с Bootstrap, управляющим макетом.

Хотя это идет вразрез, я прибегнул к использованию таблиц для макета. Учитывая, что место назначения (pdf) явно имело фиксированную ширину, адаптивность не требовалась.

person Chris Jones    schedule 21.03.2017

Я знаю, что это немного поздно, но это может кому-то помочь. Проблема с загрузкой заключается в том, что для выравнивания столбцов используется float: left, а pdfsharp не может прочитать это свойство, вместо этого используйте display: inline-block и определяйте ширину в пикселях.

person Alan Viezcas    schedule 19.05.2020

Чтобы избежать бесполезных усилий для других людей, он не работает для Bootstrap, как таблица, даже используя display: inline-block для определения ширины. Правая сторона таблицы всегда обрезана, размер не соответствует размеру буквы в моем случае.

пожалуйста, просмотрите снимок в браузере и после преобразования в pdf для таблицы

person John Wang    schedule 19.05.2021