Printing from a web application has always been tricky. This is much easier these days with the availability of numerous third-party controls that provide print functionality to your application. The reality, however, is that I have come across many projects where, when they were developed, used a third-party control to provide print functionality. At the time it was developed, the third-party control was good and did exactly what they needed.
Having this functionality available to the application means that the companies that purchase the licenses for these third-party controls, rarely continue renewing their licenses. Within a few years, however, this results in a web application that contains old and dated print technology. While there is nothing wrong with this, it does have some drawbacks.
The developers are usually stuck with maintaining an aging code base, which is locked into this third-party control. Any change in requirements, and you'll find that developers are faced with making code work within the limitations of the third-party controls. Alternatively, they need to approach the powers that be and suggest that the third-party controls be updated to the latest version. This means that the small change needed in the print module, turns out to be more costly than anyone had budgeted.
I agree that there are some developers that do a very good job of providing and maintaining functionality in an aging code base. I also really love third-party controls and the functionality they provide. There are a select few big players that a developer can choose from. But here is the catch: why purchase a suite of third-party controls, when all you need is the ability to print an invoice for example? Using this logic, serverless make much more sense in many cases (this one included).