加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用iTextSharp将带有CSS的HTML转换为PDF

发布时间:2020-12-15 21:58:16 所属栏目:百科 来源:网络整理
导读:我在使用C#网站的asp.net工作.我想转换一个 HTML DIV,其中包含各种html元素,如div,标签,表格和图像与css样式(背景颜色,cssClass等),我希望它的整个内容使用iTextSharp DLL转换为PDF但在这里我面临着css没有得到应用的问题.任何人都可以通过提供任何示例或代
我在使用C#网站的asp.net工作.我想转换一个 HTML DIV,其中包含各种html元素,如div,标签,表格和图像与css样式(背景颜色,cssClass等),我希望它的整个内容使用iTextSharp DLL转换为PDF但在这里我面临着css没有得到应用的问题.任何人都可以通过提供任何示例或代码片段来帮助我.

解决方法

安装2个NuGet包iTextSharp和itextsharp.xmlworker并使用以下代码:

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;


byte[] pdf; // result will be here

var cssText = File.ReadAllText(MapPath("~/css/test.css"));
var html = File.ReadAllText(MapPath("~/css/test.html"));

using (var memoryStream = new MemoryStream())
{
            var document = new Document(PageSize.A4,50,60,60);
            var writer = PdfWriter.GetInstance(document,memoryStream);
            document.Open();

            using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssText)))
            {
                using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)))
                {
                    XMLWorkerHelper.GetInstance().ParseXHtml(writer,document,htmlMemoryStream,cssMemoryStream);
                }
            }

            document.Close();

            pdf = memoryStream.ToArray();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读