我尝试使用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;
}
除分页符外,一切正常。在某些页面上,我得到的结果类似于此图片
有可能解决这个问题吗? 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; }
还有一个在运行文本中分页的示例。