Create PDF from website using MS Edge

"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --headless --print-to-pdf=c:\temp\google.pdf https://google.com/

This is crashing on my computer, but it’s still generating the PDF, so I’m not sure what the deal is there.

HTML to PDF

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

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