在.NET中将HTML转换为PDF
我想通过将HTML内容传递给函数来生成PDF。 我已经使用了iTextSharp,但它在遇到表格时表现不佳,布局变得混乱。
有没有更好的办法?
尝试wkhtmtopdf。 这是迄今为止我发现的最好的工具。
对于.NET,您可以使用这个小型库轻松调用wkhtmtopdf命令行实用程序。
编辑:使用PdfSharp的PDF 新建议 HTML渲染器
(尝试wkhtmltopdf并建议避免它)
HtmlRenderer.PdfSharp是完全完全的C#托管代码 , 易于使用,线程安全且最重要的是免费 (新BSD许可证)解决方案。
用法
使用示例方法。
public static Byte[] PdfSharpConvert(String html)
{
Byte[] res = null;
using (MemoryStream ms = new MemoryStream())
{
var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4);
pdf.Save(ms);
res = ms.ToArray();
}
return res;
}
一个很好的替代品是iTextSharp的免费版本
在版本4.1.6之前,iTextSharp已获得LGPL许可证和版本,直到4.16版(或可能还有叉)可作为软件包使用,并且可以自由使用。 当然,有人可以使用续5+付费版本。
我试图将wkhtmltopdf解决方案整合到我的项目中,并遇到一些障碍。
我个人会避免在Hosted Enterprise应用程序上使用基于wkhtmltopdf的解决方案,原因如下。
--- PRE编辑章节---
对于任何想在简单的应用程序/环境中从html生成pdf的人,我都会留下我的旧帖子作为建议。
TuesPechkin
https://www.nuget.org/packages/TuesPechkin/
或特别是对于MVC Web应用程序(但我想你可以在任何.net应用程序中使用它)
Rotativa
https://www.nuget.org/packages/Rotativa/
他们都利用wkhtmtopdf二进制文件将html转换为pdf。 它使用webkit引擎来渲染页面,以便它也可以解析css样式表 。
它们提供与C#的无缝集成。
Rotativa还可以从任何Razor视图直接生成PDF。
另外对于真实世界的Web应用程序,他们还管理线程安全等。
大多数HTML到PDF转换器都依靠IE来完成HTML解析和渲染。 当用户更新他们的IE时,这可能会中断。 这是一个不依赖于IE的。
代码是这样的:
EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);
像许多其他转换器一样,您可以传递文本,文件名或Url。 结果可以保存到文件或流中。
链接地址: http://www.djcxy.com/p/46751.html