# pdfme/pdfme

**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/pdfme-pdfme).**

4,156 stars · 426 forks · TypeScript · mit

## Links

- GitHub: https://github.com/pdfme/pdfme
- Homepage: http://pdfme.com/
- awesome-repositories: https://awesome-repositories.com/repository/pdfme-pdfme.md

## Topics

`pdf` `pdf-designer` `pdf-generation` `pdf-generator` `pdf-lib` `pdf-library` `pdf-viewer` `react` `typescript`

## Description

pdfme is a schema-based PDF generation engine and dynamic document builder. It provides a system for producing PDF documents by merging predefined templates with dynamic input data across different runtime environments.

The project includes a browser-based WYSIWYG PDF editor and template designer, allowing for the arrangement of elements via a drag-and-drop interface. It distinguishes itself through a plugin-based architecture that enables schema extensions and custom rendering logic for new content types.

The capability surface covers dynamic content generation, including variable placeholder injection, automatic page breaks, and dynamic data tables. It also provides tools for vector shape drawing, barcode and QR code generation, custom font embedding, and the construction of interactive form inputs. 

Command-line utilities are available for PDF layout inspection and configuration validation to diagnose errors before final document generation.

## Tags

### Content Management & Publishing

- [Schema-Driven Generation](https://awesome-repositories.com/f/content-management-publishing/pdf-document-generation/schema-driven-generation.md) — Renders PDFs by merging JSON layout definitions with dynamic data objects across different runtime environments.
- [Automated Document Workflows](https://awesome-repositories.com/f/content-management-publishing/automated-document-workflows.md) — Builds input forms and dynamic tables that automatically scale and break across pages based on data volume.
- [Dynamic PDF Generators](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-tools/pdf-manipulation-utilities/pdf-editors/dynamic-pdf-generators.md) — Provides utilities for creating PDFs with dynamic content, headers, footers, and tables via templates.
- [PDF Document Generation](https://awesome-repositories.com/f/content-management-publishing/pdf-document-generation.md) — Generates PDF files by merging predefined templates with dynamic input data across different runtimes. ([source](https://pdfme.com/docs/getting-started))
- [Text Placeholder Replacements](https://awesome-repositories.com/f/content-management-publishing/text-placeholder-replacements.md) — Provides an engine for replacing defined variable markers within text strings with dynamic data during PDF generation. ([source](https://pdfme.com/docs/supported-features))
- [Dynamic List Generators](https://awesome-repositories.com/f/content-management-publishing/dynamic-list-generators.md) — Produces bulleted or numbered lists that support nested indentation and automatic page breaking. ([source](https://pdfme.com/docs/supported-features))
- [Dynamic Text Generation](https://awesome-repositories.com/f/content-management-publishing/dynamic-text-generation.md) — Renders dynamic text and inline Markdown with custom fonts and flexible styling options. ([source](https://pdfme.com/docs/supported-features))
- [PDF Document Management](https://awesome-repositories.com/f/content-management-publishing/pdf-document-management.md) — Provides centralized administration of document templates and custom fonts to ensure consistency across generated files. ([source](https://app.pdfme.com/))

### User Interface & Experience

- [Visual Layout Editors](https://awesome-repositories.com/f/user-interface-experience/visual-layout-editors.md) — Provides a browser-based drag-and-drop visual layout editor for defining PDF templates. ([source](https://app.pdfme.com/))
- [Coordinate-Based Positioning](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning.md) — Provides a coordinate-based grid system for the precise absolute positioning of elements within PDF templates.
- [Rendering Logic Plugins](https://awesome-repositories.com/f/user-interface-experience/custom-component-extensions/content-plugin-systems/rendering-logic-plugins.md) — Allows developers to extend the core engine with custom plugins for new content types and rendering logic.
- [Dynamic Data Tables](https://awesome-repositories.com/f/user-interface-experience/dynamic-data-tables.md) — Provides runtime rendering of structured data as dynamic tables that support automatic page breaking. ([source](https://pdfme.com/docs/supported-features))
- [Schema-Based PDF Generators](https://awesome-repositories.com/f/user-interface-experience/forms/dynamic-form-generation/schema-based-generators/schema-based-pdf-generators.md) — Generates documents using structured templates and a plugin-based architecture to define how specific data types render.
- [Visual Designer Rendering Plugins](https://awesome-repositories.com/f/user-interface-experience/rendering-capability-extensions/visual-designer-rendering-plugins.md) — Enables the creation of schema plugins that define how specific data types render within the visual PDF designer. ([source](https://pdfme.com/docs/custom-schemas))
- [Dynamic Height Calculation](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/css-layout-systems/constraint-based-layouts/dynamic-height-calculation.md) — Automatically calculates element heights to handle content overflow and trigger automatic page breaks.
- [Document Layout Design](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/design-utilities/design-authoring-software/design-tools/document-layout-design.md) — Provides a specialized visual design tool for creating document layouts using a drag-and-drop interface.
- [PDF Template Management](https://awesome-repositories.com/f/user-interface-experience/ui-template-customization/pdf-template-management.md) — Manages fonts, assets, and custom schemas to ensure brand consistency across generated PDF documents.
- [WYSIWYG Editors](https://awesome-repositories.com/f/user-interface-experience/wysiwyg-editors.md) — Provides a visual drag-and-drop interface for designing PDF layouts where the editor view matches the final generated document.
- [Content Previewing](https://awesome-repositories.com/f/user-interface-experience/content-previewing.md) — Ships a read-only document previewer to verify the visual state of the PDF before final generation. ([source](https://pdfme.com/docs/getting-started))
- [Custom Font Libraries](https://awesome-repositories.com/f/user-interface-experience/font-configurations/font-configurators/custom-font-libraries.md) — Supports loading and registering custom font files via URLs or binary data to ensure brand consistency. ([source](https://pdfme.com/docs/custom-fonts))
- [Interactive PDF Form Fields](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interactive-pdf-form-fields.md) — Provides the ability to embed interactive fillable fields and input elements like checkboxes and date pickers into generated PDF documents. ([source](https://pdfme.com/docs/supported-features))
- [Template-Driven Input Forms](https://awesome-repositories.com/f/user-interface-experience/form-input-widgets/template-driven-input-forms.md) — Creates user interfaces specifically designed to capture the variable values needed to populate a document template. ([source](https://pdfme.com/))
- [Expression Evaluators](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/control-flow-directives/expression-evaluators/expression-evaluators.md) — Implements an expression engine for calculating values using mathematical operations and variables within read-only fields. ([source](https://pdfme.com/docs/expression))
- [Static Page Elements](https://awesome-repositories.com/f/user-interface-experience/page-headers/page-action-integrations/page-element-injections/static-page-elements.md) — Allows the placement of fixed headers, footers, and other static elements that appear on every page. ([source](https://pdfme.com/docs/headers-and-footers))
- [Template-to-Form Generators](https://awesome-repositories.com/f/user-interface-experience/template-to-form-generators.md) — Automatically generates user interfaces for data capture by extracting variable placeholders from PDF layout definitions.

### Software Engineering & Architecture

- [Cross-Platform Rendering Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-rendering-abstractions.md) — Implements an architectural layer that decouples the document's visual layout from the final PDF rendering engine for cross-platform compatibility.
- [Schema Extension Systems](https://awesome-repositories.com/f/software-engineering-architecture/schema-extension-systems.md) — Allows the extension of the document schema to support new content types via built-in or custom plugins. ([source](https://pdfme.com/docs/getting-started))
- [Automatic Layout Engines](https://awesome-repositories.com/f/software-engineering-architecture/automatic-configuration/automatic-layout-engines.md) — Implements an automatic layout engine that calculates element height and manages overflow across page breaks. ([source](https://pdfme.com/docs/supported-features))
- [Layout Validators](https://awesome-repositories.com/f/software-engineering-architecture/automatic-configuration/automatic-layout-engines/layout-validators.md) — Includes utilities to validate template configurations and inspect visual alignment to diagnose errors before generation.
- [Caching and Memoization](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/caching-memoization.md) — Utilizes caching and memoization to store computationally expensive rendering results and accelerate the generation of multiple documents.

### Development Tools & Productivity

- [Browser-Based PDF Editors](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/document-editors/browser-based-pdf-editors.md) — Provides a browser-based editor for visually designing PDF layouts that integrates into frontend frameworks.

### Graphics & Multimedia

- [Shape Drawing](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing.md) — Provides tools for drawing programmatic vector shapes including lines, rectangles, and ellipses. ([source](https://pdfme.com/docs/supported-features))
- [PDF Image Embedding](https://awesome-repositories.com/f/graphics-multimedia/pdf-image-embedding.md) — Supports embedding raster images in JPEG, PNG, PDF, and SVG formats within the document layout. ([source](https://pdfme.com/docs/supported-features))
