我尝试使用PdfSharp和HtmlRenderer将HTML转换为PDF。这是代码的一部分:

private byte[] CreateHtmlContent()
{
    string htmlContent = File.ReadAllText(@"htmlExample.txt");

    using (MemoryStream ms = new MemoryStream())
    {
        PdfDocument pdfDocument = new PdfDocument();
        PdfDocument pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4, 60);
        pdf.Save(ms);
        res = ms.ToArray();
    }
    return res;
}

除分页符外,一切正常。在某些页面上,我得到的结果类似于此图片

c# - HTML到PDF-使用PdfSharp和HtmlRenderer进行分页-LMLPHP

有可能解决这个问题吗? HTML内容是简单的html,仅包含标题和段落,没有其他标签。我在iTextSharp上没有这个问题,但是在这个项目上我必须使用PdfSharp和MigraDoc。

最佳答案

当我在github上找到这个拉取请求时,我遇到了类似的挑战并解决了它:
https://github.com/ArthurHub/HTML-Renderer/pull/41

您可以设置custom-css-property

td { page-break-inside: avoid; }

在您要控制分页符的所有元素或选择器上(td,p,.my-class等)。

如果要让库来控制某些元素的分页,则可以使用值“auto”
td { page-break-inside: auto; }

还有一个在运行文本中分页的示例。

09-26 22:27
查看更多