HTMLRenderer и PDFSharp плохо отображают таблицы даже со встроенными стилями - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь использовать HTMLRenderer и PDFSharp для вывода файла PDF. Но я замечаю, что даже очень простые таблицы не отображаются правильно. Я встраиваю стиль прямо в веб-страницу. Я даже попробовал теги стиля прямо на элементах, и он игнорирует их.

Я что-то здесь упускаю?

using PdfSharp.Pdf;
using System.IO;
using TheArtOfDev.HtmlRenderer.PdfSharp;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string html = File.ReadAllText(@"1.htm");
            PdfDocument pdf = PdfGenerator.GeneratePdf(html, PageSize.Letter);
            pdf.Save(@"1.pdf");
        }
    }
}

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        .hdr { background-color:gray;}
        .cell {background-color:burlywood;}
        tr { color:blue;}
    </style>
</head>
<body>
    <table>
        <tr class="hdr"><td>Colum1</td><td>Column2</td></tr>
        <tr style="background-color: lightblue"><td>Chevy</td><td>Malibu</td></tr>
        <tr><td class="cell">Honda</td><td style="background-color:gold">Accord</td></tr>
    </table>
</body>
</html>

Вывод браузера сверху и PDF снизу:

Rendered table using browser and pdf

1 Ответ

0 голосов
/ 20 января 2020

Я не смог найти решение своего вопроса, поэтому нашел альтернативное решение. Я переключился на Select HtmlToPdf. Это в NUGET.

Реализация проста

static void Main(string[] args)
{
    SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
    SelectPdf.PdfDocument doc = converter.ConvertHtmlString(File.ReadAllText("3.htm"), @"file:///dev/pdf4/ConsoleApp1/");
    doc.Save("3.pdf");
    doc.Close();
}

Они предлагают бесплатную версию, которая ограничивает вас 5 страницами и имеет несколько других ограничений, но она сделала работу, которую я искал без меня, чтобы изменить мои Html.

Мне также нравится, как они реализовали рендеринг изображений. Указывая базовый URL, он отображает изображения так, как вы ожидаете, без каких-либо трюков. Границы таблицы немного грязные, но не так уж и плохи.

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