No Edge Software
  • Search results
No Edge Software

HTML to PDF

This uses the wkhtmltopdf command line tool to convert HTML to PDF, using .NET’s built-in command-line functionality.

Sample Code

using System.Diagnostics;
using System.IO;

class Program
{
    const string EXE = @"C:\wkhtmltopdf\wkhtmltopdf.exe";

    static void Main(string[] args)
    {
        string html = "Hello World!";
        byte[] pdf = CreatePDF(html);
        string file = Path.GetTempFileName() + ".pdf";
        File.WriteAllBytes(file, pdf);
        Process.Start(file);
    }

    static byte[] CreatePDF(string html)
    {
        string tempHTML = Path.GetTempFileName() + ".html";
        File.WriteAllText(tempHTML, html);

        string tempPDF = Path.GetTempFileName() + ".pdf";

        var process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                CreateNoWindow = true,
                RedirectStandardOutput = true,
                RedirectStandardInput = true,
                UseShellExecute = false,
                FileName = EXE,
                Arguments = string.Format("\"{0}\" \"{1}\"", tempHTML, tempPDF)
            },
            EnableRaisingEvents = true
        };
        process.OutputDataReceived += (sender, e) =>
        {
            Debug.Write(e.Data);
        };
        process.Start();
        process.BeginOutputReadLine();
        process.WaitForExit();
        process.CancelOutputRead();
        byte[] result = File.ReadAllBytes(tempPDF);
        File.Delete(tempHTML);
        File.Delete(tempPDF);
        return result;
    }
}

Author

Joe Enos