XMLWorker
概要
コード
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using System.IO;
public class HtmlToPdf
{
private const string JapaneseFontName = "c:\\windows\\fonts\\msmincho.ttc,0";
public static byte[] ConvertHtmlToPdf(string html)
{
MemoryStream output = new MemoryStream();
using (var document = new Document(PageSize.A4, 30, 30, 30, 30))
using (var writer = PdfWriter.GetInstance(document, output))
{
document.Open();
var fontname = JapaneseFontName;
var fontProvider = new XMLWorkerFontProvider();
fontProvider.Register(fontname, "Serif");
var cssText = @"body {font-family: Serif;}";
using (var cssMS = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssText)))
using (var htmlMS = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html)))
{
var xmlWorker = XMLWorkerHelper.GetInstance();
xmlWorker.ParseXHtml(writer, document, htmlMS, cssMS, System.Text.Encoding.UTF8, fontProvider);
}
document.Close();
}
return output.ToArray();
}
}
参考