pdfmake is a PDF document generation library for server-side and client-side usage in pure JavaScript. Print PDFs directly in the browser or delegate them to your NodeJS backend. Use the same document definition in both cases. Forget about manual x, and y calculations. Declare document structure and let pdfmake do the rest. Use paragraphs, columns, lists, tables, canvas, etc. Declare your own styles, use custom fonts, build a DSL, and extend the framework. Line-wrapping, text-alignments (left, right, centered, justified), numbered and bulleted lists, margins, images, and vector graphics. Convenient styling, style inheritance, and custom style dictionaries. Auto/fixed/star-sized/percentage columns widths, col-spans, and row-spans, headers automatically repeated in case of a page-break, non-breaking rows, and non-breaking sections keeping headers and rows together. Static or dynamic content, page numbers, and page count.