Convertir des pages HTML en PDF en .Net

 01/01/2019 |   Admin |  C#


De nombreux moyens existent pour convertir une page html (ou asp) en pdf.

Après quelques tests et recherches, la façon qui me semble la plus simple est d'utiliser la dll TuesPechkin.

TuesPechkin utilise wkhtmltopdf, un outil puissant pour générer des pdfs, mais lourd à mettre en place. TuesPechkin utilise webKit pour générer du code html en pdf. Il apporte en plus le support 32 et 64 bits. Le gros avantage est qu'il n'y a pas besoin d'installer l'exécutable wkhtmltopdf sur le serveur.

Voici un exemple d'utilisation :

public class PdfGenerator
{
        public static byte[] HtmlToPdfBytes(string html, string documentTitle = "Document Pdf")
        {
            var document = new HtmlToPdfDocument
               {
                   GlobalSettings =
                   {
                       ProduceOutline = true,
                       DocumentTitle = documentTitle,
                       PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
                       Margins =
                       {
                           All = 1.375,
                           Unit = Unit.Centimeters
                       }
                   },
                   Objects = {
                        new ObjectSettings { HtmlText = html},
                        new ObjectSettings { PageUrl = "www.google.com" },
                        // Add here new objects
                    }
               };
 
            IPechkin converter = Factory.Create();
            byte[] pdfBuf = converter.Convert(document);
 
            return pdfBuf;
        }
    }

Affichage du pdf :

var pdfBuf = PdfGenerator.HtmlToPdfBytes(html, "Un titre");
 
Response.ContentType = "application/pdf";
Response.BinaryWrite(pdfBuf);
Response.Flush();
Response.End();