iTextSharp を使用して html を pdf に変換する
public static MemoryStream CreatePdfFromHtml(
string html, List<Attachment> attachments)
{
MemoryStream msOutput = new MemoryStream();
using (TextReader reader = new StringReader(html))
using (Document document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document, msOutput);
document.Open();
foreach (var a in attachments)
{
var image = iTextSharp.text.Image.GetInstance(a.File);
document.Add(image);
}
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, reader);
writer.CloseStream = false;
document.Close();
msOutput.Position = 0;
return msOutput;
}
}
html には、このようにいくつかの埋め込み画像が含まれています。を使用して電子メールで同じ HTML が送信されるため、この方法が推奨されLinkedResources
ましたAlternateView
。
foreach (var a in attachments)
{
//not production code
html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
}
ただし、pdf が生成されると、画像 ID をhtml タグのsrc
一部にリンクする方法がありません。img
最終的に、pdfにはすべての画像が上に含まれ、次にHTMLが<img src...
無視されます。
Paragraphs または ImageAbsolutePosition を使用していくつかの可能な解決策を読みましたが、それらは収まらないようです。