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)... 66.155.9.238, 192.0.81.250, 192.0.80.250, ...
Connecting to inconsolation.wordpress.com (inconsolation.wordpress.com)|66.155.9.238|: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 [65344]
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)
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.
It runs quite happily without X if compiled against the authors’ patched Qt version – wkhtmltox-static in AUR, or the generic binaries on their website.
I know this for certain because it’s happily generating blood-analysis reports on one of our headless servers.