Convertire un HTML a PDF utilizzando iTextSharpiTextSharp HTML a PDF immagine 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;
}
}
il codice HTML contiene diverse immagini incorporate in questo modo. Questo metodo è stato preferito in quanto lo stesso codice HTML viene inviato tramite e-mail utilizzando LinkedResources
in un AlternateView
.
foreach (var a in attachments)
{
//not production code
html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
}
Tuttavia, quando il pdf viene generato, non c'è modo di collegare l'id immagine con la src
parte del tag html img
. In definitiva, il pdf contiene tutte le immagini in alto e quindi l'HTML con lo <img src...
ignorato.
Ho letto diverse soluzioni possibili utilizzando sia i paragrafi o ImageAbsolutePosition ma non sembrano adattarsi.
@kleopatra Ho aggiunto il codice e il testo dal sito web di riferimento. – Pierre