PhantomJS with changes to build against stock QT5 and allowing DPI selection on PDF rendering.