Преобразование строки HTML с помощью встроенного CSS в PDF - PullRequest
0 голосов
/ 06 июня 2018

У меня есть HTML-документ с CSS, определенным в тегах заголовка.Я хочу, чтобы эта html-строка была преобразована в pdf.

Я использовал ABC pdf и SelectPDF dll и сгенерировал pdf.

Когда я использовал ABC pdf, при преобразовании не применялись стили CSS.в pdf.SelectPDF применил стили CSS к PDF, но он немного грязный.

Кто-нибудь знает, как правильно конвертировать HTML в PDF?

1 Ответ

0 голосов
/ 14 июня 2018

Я нашел решение для преобразования строки HTML со встроенным стилем в PDF.Я выполнил использование ABCpdf версии 11. Это решение предоставлено технической командой ABCpdf.Я перепробовал множество многочисленных библиотек и онлайн-решений (где я могу передать свою HTML-строку для обслуживания и получить PDF-файл), но ни одна из них не дала мне хорошего результата, включая вышеупомянутые прокомментированные решения.Итак, вот решение для преобразования HTML в pdf.

<html>
<meta charset="utf-8" />
<head><head>
<body style="height: 100%;background-color: #D7CCC8;font-size: 12px;position: relative;height: 100%;margin: 0;">
<div style='position: relative;min-height: 100%;padding: 1em 1em 2em;margin-bottom: -11em;'>

put the content that you want to be in the pdf(with inline styling the html elements). This is an example of the html string that needs to be converted into a pdf.


</div>
</body>
</html>

Ниже приведен код C # для преобразования указанной выше строки HTML в формат PDF.

            //generate pdf
            using (Doc pdfDocument = new Doc())
            {
                // Set HTML options
                pdfDocument.HtmlOptions.Engine      = EngineType.Gecko;
                pdfDocument.HtmlOptions.Media       = MediaType.Screen;
                // Convert first HTML page, result: html string
                int         pageID                  = pdfDocument.AddImageHtml(result);

                // Convert other HTML pages
                while (true)
                {
                    if (!pdfDocument.Chainable(pageID))
                    {
                        break;
                    }

                    pdfDocument.Page                = pdfDocument.AddPage();
                    pageID                          = pdfDocument.AddImageToChain(pageID);
                }

                //save
                for (int i = 0; i < pdfDocument.PageCount; i++)
                {
                    pdfDocument.PageNumber          = i;
                    pdfDocument.Flatten();
                }

                //save the pdf, pdfFullPath: path to save the pdf
                pdfDocument.Save(pdfFullPath);
            }

Приведенный выше код преобразует строку html в формат pdf.ПРИМЕЧАНИЕ: в моем html у меня не было никаких изображений, и все стили были упомянуты встроенными, как в примере.

Надеюсь, что вышеупомянутое решение поможет кому-то, как и для меня.Любой желающий может предложить любые улучшения для этого кода (например, вставить изображения, сложное преобразование HTML в PDF и т. Д.).

...