首页 > 后端开发 > C++ > 如何使用 iTextSharp 将 HTML 转换为 PDF:HTMLWorker 与 XMLWorker?

如何使用 iTextSharp 将 HTML 转换为 PDF:HTMLWorker 与 XMLWorker?

Linda Hamilton
发布: 2025-01-27 03:11:12
原创
190 人浏览过

How to Convert HTML to PDF Using iTextSharp: HTMLWorker vs. XMLWorker?

> itextsharp:有效地将HTML转换为PDF

>

>使用ItextSharp将HTML文档转换为PDF格式需要结构化方法。 要记住,HTML和PDF是不同的格式,需要在转换过程中进行仔细处理。

了解ItextSharp的HTML处理>

> ItextSharp具有解析HTML和CSS的能力,但缺乏对ASP.NET,MVC或Razor等框架的支持。 您有责任从所选框架中提取HTML内容; itextSharp不提供此功能。

>解析器选择:htmlworker vs. xmlworker >

> itextSharp提供了两个用于HTML标签解析的选项:HTMLWorker和XMLWorker。 虽然先前使用了HTMLWorker,但XMLWorker现在是推荐的解析器。 XMLWorker具有增强的可扩展性和优越的CSS支持。

>代码示例:HTML标签与HTMLWorker和XMLWorker

进行解析 以下C#代码片段说明了如何使用这两种方法来解析HTML标签:

// Example HTML
string html = "...";

// Parsing with HTMLWorker (CSS ignored)
using (var htmlWorker = new iTextSharp.text.html.simpleparser.HTMLWorker(doc))
{
    using (var sr = new StringReader(html))
    {
        htmlWorker.Parse(sr);
    }
}

// Parsing with XMLWorker (CSS supported)
using (var srHtml = new StringReader(html))
{
    iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml);
}
登录后复制
利用XMLWorker进行CSS支持

> XMLWorker允许CSS样式表的无缝集成。 以下示例说明了这一点:

string css = "...";

// Convert CSS and HTML strings to memory streams
using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(css)))
using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)))
{
    iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss);
}
登录后复制
重要说明:

以上是如何使用 iTextSharp 将 HTML 转换为 PDF:HTMLWorker 与 XMLWorker?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板