iTextSharp de code Html vers Pdf image src

Convertir des pages html au format pdf en utilisant iTextSharp

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;
        }
    }

Le code html contient plusieurs images embarquées de cette façon. Cette méthode a été privilégiée comme le même code HTML est envoyé par e-mail à l'aide de LinkedResources dans un AlternateView.

foreach (var a in attachments)
{
    //not production code
    html += string.Format("<img src=\"cid:{0}\"></img>", a.Id.ToString());
}

Toutefois, lorsque le pdf est généré, il n'y a aucun moyen de lier l'id de l'image avec la src partie de la img balise html.
En fin de compte, le document pdf contient toutes les images, et puis le code HTML avec le <img src... ignoré.

J'ai lu à plusieurs solutions possibles en utilisant soit les Paragraphes ou les ImageAbsolutePosition mais ils ne semblent pas s'intégrer.

OriginalL'auteur Ovi | 2012-11-27