Now that v5.x is stable, I was looking to use that (rather than v4.x).
However, PDF generation is a blocker for me. It seems that the local install of PhantomJS is no longer supported. Considering that is abandomware, in isolation that seems rather wise. However, that means that the only options now are using the online, 3rd party PhantomJS service, or installing Chrome and all it’s dependencies…
Neither of these options is currently acceptable in my scenario.
Re the PhantomJS service, the requirement for a public facing server is a problem. Plus (even if that weren’t an issue) sending sensitive documents that includes a lot of identifying info (not just mine, but other’s too) to a remote service that I have no way of auditing doesn’t seem like a good business decision. I’m not questioning their trustworthiness, but I don’t know anything about them and don’t want to have to trust them.
Re the headless Chrome approach, in theory, that is much more acceptable. But when I looked at installing it (Debian stable) it pulls in a TON of dependencies (~500MB installed)! Requiring an extra 1/2 GB to just generate PDFs seems ridiculous.
I may go the Chrome install direction if I have no other way forward (and probably see if I can trim the deps down a bit). But surely there is a better option for (local) PDF creation?!
E.g. a quick google turned up WeasyPrint - a cross platform (i.e. Windows/Mac/Linux) tool to “print” html to PDF. It’s packaged in Debian stable backports and will be in Bullseye. It does still pull in 90MB, but vs ~500MB that’s not too bad…
Even if Invoice Ninja doesn’t have plans to support that (or some other lighter weight local alternative), if the calls to Chrome are documented somewhere (or at least point to the relevant code) then perhaps I could look at writing a wrapper for WeasyPrint? (That translates the calls to headless chrome to WeasyPrint). If I go that direction, would that be of interest to the Invoice Ninja devs?