I am creating a HTML catalog of movies, and then converting it to PDF. I was using EO.Pdf, and it worked for my small test sample. However, when I run it against the entire list of movies, the resulting HTML file is nearly 8000 lines, and 7MB. EO.Pdf times out when attempting to convert it. I believe it is a limitation of the free version, as I can copy the entire HTML and paste it into their online demo and it works.

I am looking for an alternative to use. I am not good with command line, or running external programs, so I would prefer something I can add to the .NET library and use easily. I will admit that the use of EO.Pdf was easy, once I added the dll to the libarary and added the namespace, it took one line of code to convert either the HTML Code, or the HTML file into a PDF. The downsides I ran into were that they had a stamp on every page (in 16pt font) with their website on it. It also wouldn't pick up half of my images, not sure why. I used a relative URL in the HTML file to the images, and I created the PDF in the same dir as the HTML file.

I do not want to re-create the layout in a PDF, so I think something like iTextSharp is out. I've read a bit about something called like wkhtmltopdf or something strange like that. It sounded good, but needed a wrapper, and I have no clue how to accomplish that, or use it.

I would appreciate suggestions with basic instructions how to use them. Either a library and a couple lines on how to use it. Or if you can tell me how to setup/use the wkhtmltopdf I would be extremely greatful!

Thanks in advance!

3 Answers

I'm using wkhtmltopdf and I'm very happy with it. One way of using it:

Process p = new Process(); p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "wkhtmltopdf.exe"; p.StartInfo.Arguments = "-O landscape <<URL>> -"; p.Start(); 

and then you can get a stream:

p.StandardOutput.BaseStream 

I used this because I needed a stream, of course you can invoke it differently.


Here is also a discussion about invoking wkhtmltopdf


I just saw, that someone is implementing a c# wrapper for wkhtmltopdf. I haven't tested it, but may be worth a look.

After much searching I decided to use HiQPdf. It was simple to use, fast enough for my needs and the price point was acceptable to me.

var converter = new HiQPdf.HtmlToPdf(); converter.Document.PageSize = PdfPageSize.Letter; converter.Document.PageOrientation = PdfPageOrientation.Portrait; converter.Document.Margins = new PdfMargins(15); // Unit = Points converter.ConvertHtmlToFile(htmlText, null, fileName); 

It even includes a free version if you can keep it to 3 pages.

And no, I am in no way affiliated with them.

I recommend ExpertPdf.

ExpertPdf Html To Pdf Converter is very easy to use and it supports the latest html5/css3. You can either convert an entire url to pdf:

using ExpertPdf.HtmlToPdf; byte[] pdfBytes = new PdfConverter().GetPdfBytesFromUrl(url); 

or a html string:

using ExpertPdf.HtmlToPdf; byte[] pdfBytes = new PdfConverter().GetPdfBytesFromHtmlString(html, baseUrl); 

You also have the alternative to directly save the generated pdf document to a Stream of file on the disk.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.