

Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium.

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. This isn't the type of task I usually do, but my first instinct was to use Puppeteer.

The freelancer's existing workflow was to manually open each invoice in Chrome, and use the "Print to PDF" functionality to generate a PDF. They'd automated everything up until that point, but some of their clients wanted the invoices sent as PDF documents. They were tech savvy, and were using a templating engine to generate beautiful HTML documents from a template and some data files. I recently had a freelancer ask me for help with the automated generation of their invoices.
