# PDFME

Website | pdfme Cloud | Discord

pdfme is released under the MIT license. Ask DeepWiki Current npm package version. Downloads per month on npm.

TypeScript-based PDF generator and React-based UI. Open source, developed by the community, and completely free to use under the MIT license!

## Features | Fast PDF Generator | Easy PDF Template Design | Simple JSON Template | | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------- | | Works on Node and in the browser. Use templates to generate PDFs—complex operations are not required. | Anyone can easily create templates using the designer. | Templates are JSON data that is easy to understand and work with. | ## Custom Feature Requests While pdfme is an open-source project released under the MIT License, we are open to considering custom feature additions for a fee. **If you are willing to pay, we can evaluate and implement your requested features.** Please note that any additional functionality will always be released as open source. If this approach works for you, please [contact us](https://app.pdfme.com/contact). For a detailed list of supported features, please refer to the [Supported Features](https://pdfme.com/docs/supported-features) page. ## Documentation For complete documentation on pdfme, please refer to the [Getting Started](https://pdfme.com/docs/getting-started) guide. For the planned next major release changes, see the [migration guide draft](website/docs/migration-v6.md). Need interactive help? Use [DeepWiki](https://deepwiki.com/pdfme/pdfme) to ask questions about pdfme's documentation and source code directly. ## CLI Workflow For agentic workflows, local verification, or JSON-first template iteration, use [`@pdfme/cli`](packages/cli/README.md). - `pdfme validate`: validate template or unified job JSON before generation - `pdfme doctor`: diagnose runtime, font, `basePdf`, and output-path issues before `generate` - `pdfme generate --image --grid`: generate PDFs and inspect layout via rendered page images - `pdfme examples --withInputs`: export official example assets as a unified job you can edit and regenerate ## Examples Using pdfme If you're looking for code examples to get started with pdfme, check out the [pdfme-playground website](https://playground.pdfme.com/) and the [playground source code](https://github.com/pdfme/pdfme/tree/main/playground). Setup instructions can be found in the [DEVELOPMENT.md](DEVELOPMENT.md) file. ## Cloud Service Option While pdfme is a powerful open-source library, we understand that some users might prefer a managed solution. For those looking for a ready-to-use, scalable PDF generation service without the hassle of setup and maintenance, we offer pdfme Cloud. **[Try pdfme Cloud - Hassle-free PDF Generation](https://app.pdfme.com?utm_source=github&utm_content=readme-cloud)** pdfme Cloud provides all the features of the open-source library, plus: - PDF generation at scale without infrastructure management - Hosted WYSIWYG template designer - Simple API integration - Automatic updates and maintenance _pdfme will always remain open source. The cloud service is an optional offering for those who prefer a managed solution._ ## Sponsors Support this project by becoming a sponsor. Your logo will appear here with a link to your website. | [![ProgressLab](https://avatars.githubusercontent.com/u/103434180?s=120&v=4)](https://github.com/ProgressLabIT) | [photoquest_logo](https://photoquest.wedding/) | [Famly](https://famly.co) | [![New Sponsor](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/pdfme) | | :-------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | | [ProgressLab](https://github.com/ProgressLabIT) | [PhotoQuest](https://photoquest.wedding/) | [Famly](https://famly.co) | [New Sponsor](https://github.com/sponsors/pdfme) | ## Contributors ## Special Thanks - [pdf-lib](https://pdf-lib.js.org/): Used for PDF generation. - [fontkit](https://github.com/foliojs/fontkit): Used for font rendering. - [PDF.js](https://mozilla.github.io/pdf.js/): Used for PDF viewing. - [React](https://reactjs.org/): Used in building the UI. - [form-render](https://xrender.fun/form-render): Used in building the UI. - [antd](https://ant.design/): Used in building the UI. - [react-moveable](https://daybrush.com/moveable/), [react-selecto](https://github.com/daybrush/selecto), [@scena/react-guides](https://daybrush.com/guides/): Used in the Designer UI. - [dnd-kit](https://github.com/clauderic/dnd-kit): Used in the Designer UI. - [Lucide](https://lucide.dev/): Used in the Designer UI and Schema's icon. I definitely could not have created pdfme without these libraries. I am grateful to the developers of these projects. If you want to contribute to pdfme, please refer to the [Development Guide](https://pdfme.com/docs/development-guide). We look forward to your contributions! --- pdfme is supported by [Devin AI](https://app.devin.ai/invite/KyOTXVPrlFl2TjcT) and [Greptile](https://app.greptile.com/signup?ref=MzgyNzgtMjQ1MTU=).