Wandle html pdf iTextSharp mitiTextSharp HTML in PDF Bild src
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;
}
}
Die html auf diese Weise mehrere eingebettete Bilder enthält. Diese Methode wurde bevorzugt, da der gleiche HTML-Code per E-Mail unter Verwendung von LinkedResources
in einer AlternateView
gesendet wird.
foreach (var a in attachments)
{
//not production code
html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
}
Wenn jedoch die pdf generiert wird, gibt es keine Möglichkeit, die Bild-ID mit dem src
Teil des img
HTML-Tages zu verknüpfen. Letztendlich enthält das pdf alle Bilder oben und dann wird das HTML mit <img src...
ignoriert.
ich mehrere mögliche Lösungen gelesen haben entweder Absätze oder die ImageAbsolutePosition aber sie scheinen nicht zu passen.
@kleopatra Ich habe den Code und den Text von der referenzierten Website hinzugefügt. – Pierre