使用iTextSharp将HTML和CSS转换为PDF [英] Convert HTML with CSS to PDF using iTextSharp

查看:117
本文介绍了使用iTextSharp将HTML和CSS转换为PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用C#网站在asp.net中工作.我想转换一个HTML DIV,其中包含具有css样式(背景色,cssClass等)的各种html元素(如divs,label,表和图像),并且我希望使用iTextSharp DLL将其全部内容转换为PDF,但是在这里我要面对的是CSS尚未得到应用的问题.有人可以通过提供任何示例或代码片段来帮助我.

I am working in asp.net with C# website. I want to convert a HTML DIV which contains various html elements like divs,label, tables and images with css styles(background color, cssClass etc) and I want its whole content to be converted into PDF using iTextSharp DLL but here I am facing a issue that css is not getting applied.Can any one help me by providing any example or code snippet.

推荐答案

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

Install 2 NuGet packages iTextSharp and itextsharp.xmlworker and use the following code:

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, 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();
}

这篇关于使用iTextSharp将HTML和CSS转换为PDF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆