我已经使用 iTextSharp/XMLWorkerHelper 成功地将 HTML 转换为 PDF。到目前为止,我已经能够将内部样式应用于 HTML,如下所示。这工作得很好。但是,当我尝试使用 CDN 来使用 Font Awesome 时,我没有这样的运气。
这是我的 HTML 的样子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<style>
body {
color: #000000;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<i class="fa fa-briefcase"></i>
</body>
</html>
这就是我将 HTML 转换为最终用于创建 PDF的内存流FileStreamResult
的方式(FileStreamResult
正在关闭内存流)。
string html = "<html here>";
var ms = new MemoryStream();
using (var doc = new Document())
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
using (var srHtml = new StringReader(html))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml);
}
writer.CloseStream = false;
doc.Close();
}
}
为什么我无法在生成的 PDF 中看到公文包?