views:

3312

answers:

7

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!

A: 

AspPDF is an ActiveX server component for dynamically creating, reading and modifying Portable Document Format (PDF) files.

http://www.asppdf.com

James Skidmore
+5  A: 

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.

jle
This sounds excellent.
Mark Nold
Works very nice, even with my web hosting (web-app generates pdf invoices)
Marek
+1  A: 

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.

Mark Nold
@Jle's suggestion of wkhtmltopdf sounds like a better replacement to htmldoc.
Mark Nold
A: 

ActivePDF WebGrabber is a great product once you have everything configured correctly. It's costly, but it has awesome support of HTML and CSS.

Cory Larson
A: 

We've used the Alt-Soft XML2PDF product for this purpose. It can convert any XML file to PDF using the XSL-FO markup language.

So if your ASPX pages are XHTML compatible, Xml2PDF will convert those into PDF quite happily and easily. Here's a sample page - complete with a downloadable ASP.NET sample - that show how that works: http://www.alt-soft.com/products_HTML2PDF.aspx

It's not free, but well worth its license price!

Marc

marc_s
A: 

http://aspdotnetcodebook.blogspot.com/2009/04/how-to-convert-web-page-to-pdf.html Shows you how to override Render and change the content to PDF using iTextSharp

Brian