我正在使用 XMLWorker 将 HTML 字符串解析为 PDF 文档,但找不到控制正在生成的 PDF 的行距的方法。
Document document = new Document(PageSize.LETTER, 72f, 72f, 108f, 90f);
MemoryStream stream1 = new MemoryStream();
PdfWriter pdfWriter = PdfWriter.GetInstance(document, stream1);
document.Open();
//parse HTML into document
XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, document, new StringReader(summary.Content));
Run Code Online (Sandbox Code Playgroud)
“summary.Content”是来自数据库字段的 HTML 字符串。
现在,我最近将我们的 ITextSharp 库升级到 5.5.5.0,并升级到新的 XMLWorker 库。使用上面的代码,行距(PDF 中的“前导”)比之前生成的 PDF 小得多。我需要确保行距看起来和以前一样。
我读到我可以在我构建的段落上设置前导,但是当简单地调用 ParseXHtml() 时,这对我没有帮助。我读到 ITextSharp 默认的前导大小是字体大小的 1.5 倍。
我在这里阅读了itextsupport 文档,我可以使用这一行来使用 XML Worker 附带的 default.css。
CSSResolver cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true);
我认为默认 CSS 可能会生成与我的旧 PDF 具有相同前导的 PDF,但以下代码生成的输出 PDF 与我仅使用 ParseXHtml() 时的输出 PDF 相同。 …