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

  • Through which rendering engine?
    – SLaks
    Mar 22, 2010 at 14:55
  • Don't we all...
    – Rowan
    Mar 23, 2010 at 8:14

7 Answers 7


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

  • +1 good answer, wkhtml even waits until jscript code is done with the dom (nice for asciidoc-toc stuff)
    – akira
    Mar 22, 2010 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, 2010 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, 2011 at 19:37
  • Been looking for something like this for a number of hours now - thank you!
    – R4D4
    Feb 15, 2013 at 0:11
  • i use it in ubuntu . works great but somt pictures are not in the output. my not perfect workaround: cutycapt --url=https://stackoverflow.com/cv/sl5net --out=traditional_sl5net.jpg --print-backgrounds=on && img2pdf traditional_sl5net.jpg -o traditional_view.pdf
    – SL5net
    Feb 3, 2021 at 16:10

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.

  • 2
    Well, if you interpret "100% accurate" to mean "exactly as rendered in a specific browser", then you can most definitely get that. Mar 22, 2010 at 14:43
  • @Michael: Sure, but that information wasn't included in the question.
    – Rowan
    Mar 23, 2010 at 8:15
  • Install a virtual printer driver that saves print output as PDF
  • Open HTML in browser
  • Printo to virtual printer
  • nice workaround, I'll try it
    – user31936
    Mar 22, 2010 at 14:36
  • 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, 2010 at 15:18
  • Yes, this won't be 100% accurate, results will vary from page to page.
    – Rowan
    Mar 23, 2010 at 8:16
  • @MichaelBorgwardt: AFAIK, virtual printers do not fully support HTML links, right?
    – dma_k
    Sep 12, 2011 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.)


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.


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.


if you use Ubunto.

today i using img2pdf:

sudo apt-get install -y cutycapt
sudo apt-get install -y img2pdf
cutycapt --url=https://stackoverflow.com/story/sl5net --out=story_sl5net.jpg --print-backgrounds=on && img2pdf story_sl5net.jpg -o story_sl5net.pdf

my problem is that no automatic page breaks are created when converting

for OCR i using https://wiki.ubuntuusers.de/Paperwork/

Maybe also very helpful way to do this:


You must log in to answer this question.