C#:如何将HTML5 / CSS3转换为PDF文档?

时间:2015-02-11 07:50:37

标签: c# html5 css3 itextsharp devextreme

从标题中可以明显看出我想做什么。我知道可以使用非常流行的库iTextSharp将html转换为PDF文档。但是我从这个post承认的是iTextSharp无法正确呈现HTML5和CSS3样式。有没有免费的图书馆来实现这个目标?

背景: 我正在使用DevExtreme来生成报告。它支持PDF格式的图表导出,但我的客户希望除了图表之外还有一些PDF格式的额外内容。 DevExtreme不支持它,因此我决定编写自己的自定义PDF导出器。

有一些图书馆可用,但我不能依赖它们,因为我无法提前预测它将来会在生产中引起什么问题。如果我错了,请纠正我,微软没有提供用于操作PDF文件的API。我们可以使用Microsoft.Office.Interop.Excel.dll和Microsoft.Office.Interop.Word.dll创建和操作excel和doc文件,但我没有找到任何PDF操作。

请建议我有哪些选择。

希望这有道理..!

1 个答案:

答案 0 :(得分:0)

几年前,我使用iTextSharp将xhtml / css / wiki中的html手册变为pdf。这是......痛苦和很多工作。因此,第一个新闻是:如果您拥有的不仅仅是几页html,那么您将需要相当长的时间(2,3,4周,具体取决于您想要的完美程度)。

如果您的页面数量非常有限,那么最快和最脏的方法是从您渲染的页面制作屏幕截图并将这些图像添加到pdf中。不是很高科技,但很快就完成了。

如果您的样式表可以被牺牲而且您不关心内容的格式是否相同,则可以将html5页面转换为xhtml,以便将它们作为XmlDocuments加载。然后,您只需创建一个程序,该程序从xml元素(例如<h1>MyTitle</h1>)到使用iTextSharp创建pdf实体的某些代码段进行映射。基本上这就是我在我的情况下做的方式。我还做了一些从CSS样式类到一些特定pdf格式的映射,但没有达到极致。

另外值得一试的是从html(或xml)到tex / latex的转换器。如果你很幸运,你会找到一个做得好的工作。然后你可以使用pdftex并获得你的pdf。

此外,您可以将文档打印到xps打印机,然后将xps转换为pdf。或者您只是说服您的客户xps是他们想要的。