我正在使用iTextSharp v.5.5.6将HTML转换为PDF。 HTML没有img标签就可以很好地转换为PDF,但有时HTML包含带有Base64数据作为源的img标签,这些标签不会出现在PDF上。
以下是使用Base64 img标记的HTML示例:
<td>
<center>
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."></img>
</center>
</td>
使用在线解码器正确解码Base64数据。
以下是我用来呈现PDF的代码:
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using iTextSharp.tool.xml;
protected void BuildPdf(string html, string example_css, string stocknumber, string makemodel)
{
Byte[] bytes;
using (var ms = new MemoryStream())
{
using (var doc = new Document())
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_css)))
{
using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)))
{
iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss);
}
}
doc.Close();
}
}
bytes = ms.ToArray();
}
Response.Clear();
MemoryStream msi = new MemoryStream(bytes);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + stocknumber + " - " + makemodel + ".pdf");
Response.Buffer = true;
msi.WriteTo(Response.OutputStream);
Response.End();
}
有人可以告诉我如何让iTextSharp在PDF中包含Base64图像吗?我可以使用javascript在前端使用img标签或将其传递给代码隐藏,并使用C#在后端操作它。