In-browser
Print PDFs directly in the browser or delegate it to your NodeJS backend.
Use the same document definition in both cases.
Fully declarative
Forget about manual x, y calculations. Declare document structure and let pdfmake do the rest.
Powerful layout engine
Use paragraphs, columns, lists, tables, canvas, etc... Declare your own styles,
use custom fonts, build a DSL and extend the framework.