在 ASP.NET 中将 HTML 转换为 PDF 时保持 CSS 样式[关闭]
-
03-07-2019 - |
题
我正在使用 ITextSharp 将 HTML 页面转换为 PDF。
然而,ITextSharp 直接打印 STYLE 声明中的 CSS,即使以编程方式添加,也会忽略样式表,并且只侦听一些内联样式(例如 font-size
和 color
但不是 background-color
).
ITextSharp 是否缺少某些内容,或者是否有更好(且免费)的方法来进行此转换?
提前致谢,
解决方案
看看WKHTMLTOPDF。它是开源的,基于webkit和免费。
我们写了一个小教程这里。
其他提示
iText / iTextSharp 中的 HTML / CSS 支持是 非常基本. 。它只是不是将 html 转换为 pdf 的正确工具。看看这些解决方案:
- 使用类似于 Watin 的工具创建页面屏幕截图
- http://blog.taiki.be/index.php/2008/07/generate-screenshots-of-webpages-using-net/
- http://www.codegod.de/WebAppCodeGod/Screenshot-of-Webpage-with-ASP-NET-AID398.aspx
这些将 html 渲染为图像。然后您可以使用 iTextSharp 将它们插入 PDF 中。
否则,您可以尝试转换 HTML -> XSL-FO -> PDF,但包括 CSS 则完全是另一回事。
试用PDF Duo .NET转换器。如果您需要特殊功能,可以申请支持。
http://www.duodimension.com/html_pdf_asp.net/downloads /html_pdf_net.zip
ABCpdf提供了两个HTML呈现引擎。一个是基于系统上安装的MSHTML版本。另一个基于FireFox Gecko渲染引擎。
如果你想要一套特殊的功能,那么就有足够的空间供你使用。这是非常真实的世界。
就质量而言,我只想说,在尝试了很多不同的选择之后,我们确实让很多人接受了ABCpdf。
我在ABCpdf .NET软件组件上工作,所以我的回复可能包含基于ABCpdf的概念。这就是我所知道的。 : - )
为什么不使用在线API?它们有很多可用,而且它们的工作效果很好,这让您可以担心自己的核心工作,而不是如何正确渲染 PDF :)
你提到了“免费”的东西。这取决于您的使用情况,但大多数服务一开始就提供免费转换,范围从 50 到 250(甚至更多)。也许这对你来说就足够了?
您所要做的就是使用您的 HTML 数据(或链接)向该服务发出基本的 POST 请求,然后您将收到一个 PDF 响应。
以下是将 HTML 转换为 PDF 的 API 列表(并非详尽无遗):
- PDF移位
- HTML2PdfRocket
- Web2PDF转换
- PDF在线
- ...(还有很多 :) )