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 にブリーフケースが表示されないのはなぜですか?