I never liked wkhtmltopdf. We experimented with phantomjs, headless chrome, electron, headless firefox etc and headless chrome produces really good results at this point.
Especially PhantomJS whose updates tended to break the invoice formatting severely (like radically changing the rendered font size in PDF across a PhantomJS update).
Firefox required a virtual X server, but that was doable. I'd prefer to use Firefox, but unfortunately its PDF rendering screwed up the thickness of border lines, making them far too thick or not present at all, though it did a better job of pagination than Chrome.
And even having settled into using Chrome for this, there are two ways to generate a print-to-PDF that produce different results in Chrome, at least when it's Chrome on MacOS. Only one of them lays out my invoice PDFs correctly.