使用iTextSharp将HTML和CSS转换为PDF [英] Convert HTML with CSS to PDF using iTextSharp
问题描述
我正在使用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屋!