2011-12-23 146 views
0

我想使用iTextSharp将HTML文件转换为PDF。我使用this codeiTextSharp用于将HTML转换为PDF的替代品

我那么做了以下将其转换为PDF格式:

HTMLWorker htmlWorker = new HTMLWorker(document); 
htmlWorker.Parse(new StringReader(results)); 
document.Close(); 

然而,没有任何CSS的解析。任何替代品?

+0

你试过了什么?该问题中的代码是检索HTML页面,而不是将任何内容转换为PDF。 – Amy 2011-12-23 08:14:43

+0

道歉,编辑了问题 – user1016313 2011-12-23 08:30:38

+0

“HTMLWorker”已弃用。请尝试使用它们的“XMLWorker”。 – VahidN 2014-01-09 07:58:02

回答

10

18个月前,我们彻底地测试了大多数可用的html-to-pdf转换器(付费和免费)。最后,这个传统的最好的 html-to-pdf转换器是一个免费的开源程序,名为wkhtmltopdf

它是命令行驱动的,使用webkit渲染引擎,准确地(并且更重要的是,一致地)将网页转换成美观的pdf文件。它还具有各种有用的命令行开关,为您提供完整的页眉/页脚控制,可选地创建目录页面,并且运行速度非常快。而且 - 由于它是命令行驱动的,因此它可以很容易地用于批生成。你根本不会出错。

作为一个旁注,这个程序还有一个名为wkhtmltoimage的姊妹程序(捆绑在下载中),其工作方式完全相同,但将网页转换为各种图像格式。这也非常有用,我们使用此功能在构建作业提案时拍摄我们基于Web的工具的快照。

我知道我听起来像一个总迷人的男孩,但我不是。我只是一个对那里所有的垃圾邮件转换器感到厌倦的人,当我们发现wkhtmltopdf时,我被加倍地吹走了。我根本无法推荐这个小程序。

+0

webkit渲染引擎?那么Firefox和IE用户呢? – maxisam 2011-12-28 03:38:30

+1

用户在他们的机器上安装了什么Web浏览器并不重要 - 只要页面使用语义正确的HTML编码,pdf就会看起来很好。 – 2011-12-28 03:41:22

+0

哇!这听起来很棒! – maxisam 2011-12-28 03:43:55

2

就替代方案而言,我只能推荐ABCpdf,我们已成功地使用它来将大量HTML文档转换为PDF,作为我们的Web应用程序的一部分。

2

它不会自动加载它。您需要按照以下方式手动完成。

StyleSheet ss = new StyleSheet(); 
ss.LoadStyle("body", "leading", "16,0"); 
ss.LoadStyle("p", "style", "font-family:Times New Roman"); 

然后使用

List<IElement> htmlToPDF = HTMLWorker.ParseToList(new StringReader("<font face=\"Times\">" + html + "</font>"), style); 

foreach (IElement element in htmlToPDF) { 
    document.Add(element); 
    } 

然而,只有一些样式iTextSharp的不是所有的人工作。

其实你应该试试XMLWorker,这是itextsharp的一个插件。它刚刚在本月发布。它可以比仅使用itextsharp更好地处理html。

我认为wkhtmltopdf项目看起来不错,但我不知道它是否会与我们的生产环境打得很好,因为web应用程序是多线程程序。