HTML 到 PDF - iTextSharp 中的 CSS

Posted

技术标签:

【中文标题】HTML 到 PDF - iTextSharp 中的 CSS【英文标题】:HTML to PDF - CSS in iTextSharp 【发布时间】:2013-07-11 06:32:12 【问题描述】:

我正在尝试使用 iTextSharp 从 html 代码构建一个 pdf 文件。

这是一个 HTML 示例:

<div style="height:400px; font-family:Courier; font-size:9px">
    herrow
</div>
<span style="padding-left:100px;">
    world
</span>

作为 html 文件运行,在 hello 和 world 之间放置 400px 并在 world 之前放置 100px 可以正常工作。

这是我用来将 html 转换为 pdf 的代码:

    List<IElement> htmlList = HTMLWorker.ParseToList(new StringReader(htmlText), new StyleSheet());

    foreach (IElement element in htmlList)
    
        doc.Add(element);
    

它确实在生成的 pdf 中应用了字体系列和字体大小。 但是,它会忽略生成的 pdf 中的 div 高度和跨度宽度。

在使用 iTextSharp 将 html 转换为 pdf 时,是否可以使用高度/宽度/填充等?

如果没有,是否有解决方法,或者我可以使用其他免费的 .dll 来执行此操作?

【问题讨论】:

HTMLWorker 已弃用且不再受支持,请查看 XMLWorker。 demo.itextsupport.com/xmlworker/itextdoc/flatsite.html 这里有同样的问题...使用 XMLWorker 会解决这个问题吗?怎么用?? 尝试PrinceXML:替换和/或测试您的 html2pdf 渲染。 【参考方案1】:

只需在样式标签外拉出高度属性并像这样使用它:-

<div height='400' style="font-family:Courier;font-size:9px">

赫罗

</div>

【讨论】:

【参考方案2】:

您可能想看看 PhantomJS,而不是使用 iTextSharp。这是一种不同的方法,但它真的很有帮助!不再有 css 问题。

看看这个:phantomJS 和 this。

【讨论】:

那会创建一个图像?在那种情况下,pdf不会有可选择的文本,对吧?

以上是关于HTML 到 PDF - iTextSharp 中的 CSS的主要内容,如果未能解决你的问题,请参考以下文章

HTML 到 PDF - iTextSharp 中的 CSS

html到pdf使用itextsharp如何设置<div>元素边框

在 iTextSharp 中使用 CSS 从 HTML 渲染 PDF

C# html生成PDF遇到的问题,从iTextSharp到wkhtmltopdf

iTextSharp 创建带有空白页的 PDF

Export pdf file using ITextSharp