# bpampuch/pdfmake

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bpampuch-pdfmake).**

12,297 stars · 2,079 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/bpampuch/pdfmake
- Homepage: http://pdfmake.org
- awesome-repositories: https://awesome-repositories.com/repository/bpampuch-pdfmake.md

## Description

pdfmake is a JavaScript PDF generation library and declarative document engine that transforms structured JavaScript objects into formatted PDF files. It functions as a layout engine capable of producing documents on both the client side within a web browser and on the server side using Node.js.

The library utilizes a declarative approach to translate object-based document definitions into final PDFs. It distinguishes itself through a virtual layout engine that calculates element positions and page breaks and an inheritance-based style system that uses dictionaries to maintain visual consistency.

The toolkit covers advanced table construction with cell spanning and repeating headers, as well as automated page configuration for headers, footers, and tables of contents. It also supports custom font embedding and provides mechanisms to trigger browser downloads or system print dialogs.

## Tags

### Content Management & Publishing

- [PDF Document Generation](https://awesome-repositories.com/f/content-management-publishing/pdf-document-generation.md) — Generates formatted PDF files from structured object definitions for consistent output across environments. ([source](https://cdn.jsdelivr.net/gh/bpampuch/pdfmake@master/README.md))
- [PDF Generation Libraries](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/pdf-generation-libraries.md) — Provides a high-level framework for creating and formatting professional PDF documents using JavaScript.
- [PDF Layout Engines](https://awesome-repositories.com/f/content-management-publishing/programmatic-pdf-layout-tools/pdf-layout-engines.md) — Transforms JSON-like declarative definitions into high-fidelity formatted PDF files.
- [Table of Contents](https://awesome-repositories.com/f/content-management-publishing/documentation-knowledge-management/table-of-contents.md) — Generates structured tables of contents with page references for document navigation. ([source](https://pdfmake.github.io/docs/0.1/))
- [Dynamic Report Generation](https://awesome-repositories.com/f/content-management-publishing/dynamic-report-generation.md) — Builds automated reports featuring complex tables, page numbering, and tables of contents based on dynamic data.
- [Header and Footer Management](https://awesome-repositories.com/f/content-management-publishing/header-and-footer-management.md) — Provides tools for managing static and dynamic content in document page headers and footers. ([source](https://cdn.jsdelivr.net/gh/bpampuch/pdfmake@master/README.md))
- [Page Layout Configurations](https://awesome-repositories.com/f/content-management-publishing/page-layout-configurations.md) — Allows configuration of page dimensions, orientations, and document metadata such as author and subject. ([source](https://pdfmake.github.io/docs/0.3/))

### Business & Productivity Software

- [Document Layout Engines](https://awesome-repositories.com/f/business-productivity-software/document-layout-engines.md) — Calculates element positions and page breaks by simulating document flow before final rendering.
- [Table Construction](https://awesome-repositories.com/f/business-productivity-software/table-construction.md) — Implements programmatic creation of complex tables featuring cell spanning, repeating headers, and adjustable column widths. ([source](https://cdn.jsdelivr.net/gh/bpampuch/pdfmake@master/README.md))

### Software Engineering & Architecture

- [Declarative Document Definitions](https://awesome-repositories.com/f/software-engineering-architecture/declarative-document-definitions.md) — Translates structured JavaScript object trees into sequences of drawing commands for PDF generation.

### Web Development

- [Client-Side PDF Engines](https://awesome-repositories.com/f/web-development/client-side-pdf-engines.md) — Generates PDF documents directly in the web browser to eliminate the need for server round-trips.
- [Server-Side PDF Rendering](https://awesome-repositories.com/f/web-development/server-side-pdf-rendering.md) — Generates PDF files on Node.js servers by converting JavaScript object definitions into downloadable documents.

### User Interface & Experience

- [Browser-Based File Exports](https://awesome-repositories.com/f/user-interface-experience/browser-based-file-exports.md) — Enables triggering browser downloads, opening PDFs in new tabs, or launching the system print dialog. ([source](https://pdfmake.github.io/docs/0.1/))
- [Canvas Rendering](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning/canvas-rendering.md) — Implements precise positioning of text and graphics using an absolute X-Y coordinate system.
- [Style Inheritance Systems](https://awesome-repositories.com/f/user-interface-experience/style-inheritance-systems.md) — Uses a hierarchy of formatting rules and nested style dictionaries to resolve visual properties.
- [PDF Font Embedding](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/typography-and-iconography/font-processing/font-subsetting-engines/pdf-font-embedding.md) — Allows including specific font files within documents to ensure consistent text rendering across viewers.
- [PDF Font Embedding](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/typography-and-iconography/typography/font-libraries/custom-font-registrars/pdf-font-embedding.md) — Supports the inclusion of custom font files within the document to ensure visual consistency. ([source](https://pdfmake.github.io/docs/0.1/))
- [Text Alignment & Case Formatting](https://awesome-repositories.com/f/user-interface-experience/text-alignment-case-formatting.md) — Provides comprehensive controls for text alignment, line-wrapping, margins, and list creation. ([source](https://pdfmake.github.io/docs/0.1/))
- [Document Layout Design](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/design-utilities/design-authoring-software/design-tools/document-layout-design.md) — Allows defining precise formatting, custom fonts, and page orientations for professional branded documents.
