I was very much torn on whether or not to include wkhtmltopdf and wkhtmltoimage here, or just throw them into the leftovers at the end of the W section.
As I understand it, these twins use WebKit to convert HTML documents into either PDF format, or to generate an image. It’s a nice idea, and works great.
kmandla@6m47421: ~/downloads$ wget https://inconsolation.wordpress.com --2014-06-29 08:18:55-- https://inconsolation.wordpress.com/ Resolving inconsolation.wordpress.com (inconsolation.wordpress.com)... 18.104.22.168, 22.214.171.124, 126.96.36.199, ... Connecting to inconsolation.wordpress.com (inconsolation.wordpress.com)|188.8.131.52|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html’ [ ] 65,344 354KB/s in 0.2s 2014-06-29 08:18:56 (354 KB/s) - ‘index.html’ saved  kmandla@6m47421: ~/downloads$ wkhtmltopdf index.html index.html.pdf libpng warning: iCCP: Not recognizing known sRGB profile that has been edited Loading page (1/2) Printing pages (2/2) Done Exit with code 1 due to network error: ProtocolInvalidOperationError
My hesitation comes in the fact that, as best I can tell, neither program can run without qtwebkit or X (although the Arch package page suggests Xvfb will work). So I’m fudging the definition of “text-based program” again, for a tool that doesn’t show much “text-based” to start with.
But this wouldn’t be the first time. We endured a barrage of pdf-conversion programs back in February, and some of those are no more graphical than these two. So I guess it’s okay.
What’s the output look like? Not bad at all.
PDFs are about the same quality, but of course split into pages and probably bigger.
Both wkhtmltopdf and its sister have an immense number of flags and options that allow an impressive level of control over how the pages are rendered and the quality you achieve. So don’t dismiss either as a fire-and-forget conversion tool; the opportunity is there to fine-tune the experience.
Just remember that you will more than likely incur the need for X if you want to try either one.