【发布时间】:2020-01-29 08:39:41
【问题描述】:
我正在处理Itext7,我遇到了麻烦Document 无法在此设置Width/Height、Margin。
我已经研究过(通过堆栈溢出、itext7_pdfHTML 电子书等),但还没有找到解决方案。
public static byte[] GeneratePdf(string rootPath, string htmlString)
{
using (var stream = new MemoryStream())
{
using (var pdfWriter = new PdfWriter(stream))
{
using (var pdfDocument = new PdfDocument(pdfWriter))
{
pdfDocument.SetDefaultPageSize(PageSize.A4);
pdfDocument.SetDefaultPageSize(PageSize.A4.Rotate());
var document = HtmlConverter.ConvertToDocument(htmlString, pdfDocument, GetConverterProperties(rootPath));
document.SetMargins(1,2,3,4);
document.Close();
return stream.ToArray();
}
}
}
}
谁能告诉我我错过了什么?
我有以下几个问题:
- 对象顺序(我的意思是 MemoryStream -> PdfWriter -> pdfDocument)是正确的,不是吗?
- 我想知道生成文档后流没有受到影响?
提前致谢。
【问题讨论】:
-
document.SetMargins更改即将到来的页面的边距,而不是已经生成的页面。我不确定最好的解决方案是什么,但可以选择使用@media print定义。 -
感谢您的回复,我会检查它。顺便说一句,我不知道为什么我的字体被包括在内,但不是粗体字。此外,我的 CSS 没有按预期工作(我之前使用过 ItextSharp(又名 itext5,这个对我来说很好)。
-
如果 iText 5 更好地处理了您的 HTML 和 CSS,您可能希望将其作为一个专门的问题。
-
不幸的是,我对 html-to-pdf 的东西并不是很深入,所以我没有直接的想法。不过,我已经标记了这个问题。如果我有空余时间,我可能会对此进行调查。
-
嗨@mkl,您能否给我答案,然后我可以将其标记为已解决?我真的很感谢你的帮助。谢谢,先生。
标签: c# asp.net-mvc itext itext7