Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

The title say it all, I want a 100% accurate tool to convert a HTML page to a PDF document.

share|improve this question
    
Through which rendering engine? –  SLaks Mar 22 '10 at 14:55
    
Don't we all... –  Rowan Mar 23 '10 at 8:14

6 Answers 6

up vote 10 down vote accepted

Check out wkhtmltopdf. It uses the Webkit layout engine (as used in Safari, Chrome, etc.).

share|improve this answer
    
+1 good answer, wkhtml even waits until jscript code is done with the dom (nice for asciidoc-toc stuff) –  akira Mar 22 '10 at 15:17
    
I've been using NitroPDF for a couple years. Just found wkhtmltopdf, it works better, is faster and runs on ubuntu. –  Bob Weber May 18 '10 at 4:14
    
This didn't work for me on OS X. It would never finish 'rendering'. A very similar program did work, called wkpdf –  Ian May 31 '11 at 19:37
    
Been looking for something like this for a number of hours now - thank you! –  R4D4 Feb 15 '13 at 0:11

Consider the fact that no two browsers can render that HTML completely identically for a moment, and then realize that you're never going to get it.

share|improve this answer
    
Well, if you interpret "100% accurate" to mean "exactly as rendered in a specific browser", then you can most definitely get that. –  Michael Borgwardt Mar 22 '10 at 14:43
    
@Michael: Sure, but that information wasn't included in the question. –  Rowan Mar 23 '10 at 8:15
  • Install a virtual printer driver that saves print output as PDF
  • Open HTML in browser
  • Printo to virtual printer
share|improve this answer
    
nice workaround, I'll try it –  user31936 Mar 22 '10 at 14:36
    
+1 for virtual printer. –  Josh K Mar 22 '10 at 15:05
    
Be aware that depending on the browser you're using, the settings in it, and the webpage, some parts of the printed PDF page won't be 100% what you see on screen. Obvious things to look for, if you have a dark/black background set with light/white text over it, default print settings in most browsers will change that to black text with white background. –  GAThrawn Mar 22 '10 at 15:18
    
Yes, this won't be 100% accurate, results will vary from page to page. –  Rowan Mar 23 '10 at 8:16
    
@MichaelBorgwardt: AFAIK, virtual printers do not fully support HTML links, right? –  dma_k Sep 12 '11 at 22:27

I've been looking for this too. My best solution at the moment is to use a combination of Firefox and PDFCreator. I've also tried the other main browsers, but they don't let you turn off their own headers and footers. If you want to be able to print grey/gray text as grey (rather than black) then be sure to enable the "Print Background (color and images)" option in the File | Page Setup | Format & Options dialog.

Unfortunately, none of the main browsers seem to support the CSS @page rule for specifying things like headers, footers, widows, orphans, page sizes, landscape/portrait, etc.

There is a tool called Prince that claims to be able to do all of that (and more), with good reviews, but I haven't used it because it's expensive. (There is a free version for personal use, but it adds its own logo onto the front page of the PDF document.)

share|improve this answer

wkpdf worked perfectly for me when wkhtmltopdf did not, on OS X. It's a Ruby Gem, which was very simple to use on a stock OS X install.

share|improve this answer

I use Primo PDF to convert HTML to PDF. it's just a PDF Printer.

File > Print > Choose primo PDF

alt text

It's useful one for me because I couldn't use the Internet everything. If I want to read some articles from Wiki, I've printed out with that printer and read at home.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.