

This same approach can be used to convert arbitrary pages to PDF in your. FROM node:10-slim Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others) Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer installs, work. This code was effortless to slip into their automation script, and successfully generated PDF versions of their invoices. Converting a HTML document to PDF was a simple as this: var browserFetcher = new BrowserFetcher() Īwait using var browser = await Puppeteer.LaunchAsync(new LaunchOptions ) Īwait using var page = await browser.NewPageAsync() Īwait page.GoToAsync("file://path/of/the/invoice.html") NET port of Puppeteer called Puppeteer Sharp. NET (which was why they asked me for help), so they didn't want to deal with the Node version. The freelancer's tech stack of choice was. 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. Here we generate a CSV file and have the browser download it await page.I recently had a freelancer ask me for help with the automated generation of their invoices. Const puppeteer = require ( 'puppeteer' ) Ĭonst browser = await puppeteer.launch()
