Directly convert .aspx to .pdf [closed]

A project I am working on requires me to build a report that is output in both HTML (.aspx) and as a PDF. Is there a solution available that allows me to feed the output of an .aspx page to a PDF generation utility? Full support of HTML and CSS would be ideal.

Thanks!


Solution 1:

wkhtmltopdf will do it.... USAGE:

wkhtmltopdf http://www.google.com google.pdf

That is it. You can go to any web page... even aspx. css is supported better than any other utility as it uses the webkit html rendering engine (Safari, Chrome). Enjoy

There is a single .exe (7 mb) that can be used from .Net simply by using Process.Start Make sure that you copy the exe into your project directory or you have to specify the full path. ex:

static void HtmlToPdf(string website,string destinationFile)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = "wkhtmltopdf.exe";
        startInfo.Arguments = website+" "+destinationFile;
        Process.Start(startInfo);
    }  

I think SSL is supported but I do not think that 2-way SSL would work at the moment. It is hands down the best single stop HTML -> PDF tool I have seen.

Solution 2:

iTextSharp can do HTML to PDF, but only basic HTML and CSS not full support.

Some articles on sending HTML to iTextSharp:

http://somewebguy.wordpress.com/2009/05/08/itextsharp-simplify-your-html-to-pdf-creation/

http://aspdotnetcodebook.blogspot.com/2008/07/how-to-export-content-of-gridview-to.html

http://geekswithblogs.net/casualjim/archive/2005/11/13/59943.aspx#393262

Solution 3:

I used HTMLDoc in the past it did a good job of turning HTML tables, images etc with some basic formatting into a decent PDF report. There also seems to be an open source version as well.

iTextSharp renders html at a basic level.

I found that hacking in a simple HTML renderer allowed me to offer PDF functionality immediately and then i had to backfit a PDF report renderer later. This should be pretty simple if you keep your presentation layer separate from your data and business logic.

I used PDFlib then but both iTextSharp and PDFlib are awesome libraries for programatically creating PDF from your data sources.

I haven't seen a perfect HTML 2 PDF renderer yet, so i would plan for a two stage approach. You may also want to look at this question for other options.