30 open-source projects similar to dompdf/dompdf, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Dompdf alternative.
This library provides a rendering engine that translates declarative component trees into PDF files. It enables the construction of complex document structures using a component-based architecture, allowing developers to define layout, styling, and content programmatically. The system operates across both browser and server-side environments, offering a unified interface for generating structured documents. The project distinguishes itself through a sophisticated layout and rendering pipeline that handles the complexities of document creation. It utilizes a flexbox-based engine for element po
pdfkit is a JavaScript PDF generation library used to programmatically create binary PDF documents in Node.js and browser environments. It functions as a vector graphics engine for rendering paths, shapes, gradients, and tiling patterns, and as a tool for producing rich text and tagged documents that follow international accessibility standards for screen reader compatibility. The library includes a security and encryption utility for applying document encryption and restricting user permissions regarding printing, copying, or editing. It also serves as a form and annotation tool, enabling th
Quarkdown is a programmable document compiler and markdown static site generator. It transforms markdown source files into structured outputs, serving as a tool for generating professional books, academic papers, and digital presentations. The system distinguishes itself through a programmable layout engine that allows for the use of functions, variables, loops, and conditional logic within markdown files. It includes an interactive read-eval-print loop for testing these document functions and syntax in real time before final compilation. Additionally, it provides a specialized format for sup
This library provides a framework for constructing professional PDF documents using declarative component syntax. It functions as a document engine that transforms component trees into structured files, allowing developers to define layouts, headers, footers, and margins through standard component structures rather than proprietary markup languages. The tool distinguishes itself by enabling server-side synthesis of dynamic data, which allows for the automated generation of personalized documents from live information sources. It maps web-standard styling and layout properties into the fixed-p
WeasyPrint is a Python-based library and layout engine that converts HTML and CSS into printable PDF documents. It functions as a CSS paged media engine, translating web technologies into formatted files for automated document generation. The project implements CSS standards for print and paginated documents, allowing for the design of layouts specifically for printed pages. This includes a specialized pagination engine used to control page breaks, headers, and footers to create professional PDF outputs. Its capability surface covers server-side PDF rendering and the programmatic conversion
Blitz is an HTML and CSS rendering engine and native UI framework designed to translate web-standard markup into visual interfaces for native applications. It functions as a layout engine that converts raw HTML strings into a structured object model for programmatic rendering. The project implements a web-standard layout engine using Flexbox and Grid models to compute element positions and sizes. It includes a dedicated SVG graphics renderer for displaying scalable vector graphics embedded within HTML-based layouts. The framework covers native windowing integration and system accessibility t
PyMuPDF is a comprehensive PDF manipulation library and document analysis tool. It serves as a text extraction tool, OCR engine, and image converter, providing a programmatic interface to edit, merge, split, and optimize PDF and Office documents. The project distinguishes itself through high-performance capabilities, including the use of C-bindings for low-level manipulation and parallelized page processing to accelerate workloads. It provides specialized conversion paths, such as transforming PDF content into Markdown for retrieval-augmented generation and large language model pipelines. It
mPDF is a PHP library that transforms UTF-8 encoded HTML and CSS into formatted PDF documents. It serves as a PDF generation engine and document architect capable of converting web pages and HTML forms into professional files. The project is distinguished by its multilingual rendering capabilities, providing comprehensive support for bidirectional text, right-to-left scripts, and CJK languages using Unicode font embedding and OpenType layout processing. It further enables professional print-ready design through advanced color modeling in CMYK, precise page dimensioning, and compliance with PD
Prawn is a Ruby library and document layout tool used for the programmatic generation of PDF files. It functions as a vector graphics engine that allows for the creation of portable documents containing formatted text, custom shapes, and organized page layouts. The library differentiates itself through a coordinate-based vector rendering system that supports multi-stop gradient fills, complex polygons, and layer-based blending. It provides a comprehensive typography system capable of embedding TrueType and OpenType fonts to support UTF-8 characters and right-to-left text for multilingual publ
This project is a browser rendering service and headless Chrome PDF generator built on Puppeteer. It functions as a backend tool for converting web pages and raw HTML content into PDF documents and screenshots. The service distinguishes itself through browser session control, allowing for the injection of session cookies and the configuration of navigation timeouts to handle authenticated pages. It also includes viewport-based layout scaling to adjust browser dimensions and device scale factors during the rendering process. The broader capability surface covers HTML content export and automa
jsPDF is a document creation engine designed to generate professional PDF files through a unified programming interface. It functions as a cross-platform graphics library that enables the programmatic assembly of data into structured layouts, supporting both client-side generation within web browsers and server-side rendering in backend environments. The library utilizes a canvas-based drawing API that translates high-level geometric and text instructions into standardized PDF vector primitives. By employing a cross-platform runtime abstraction, it decouples document generation logic from env
QuestPDF is a C# PDF generation library and layout engine used to create structured documents, reports, and invoices. It utilizes a fluent API and a component-based layout approach to convert code into high-fidelity PDF and XPS files. The library distinguishes itself with a dedicated layout debugger that provides real-time previews, hot-reload capabilities, and visual boundary tools to map rendered elements back to source code. It also functions as an accessibility tool, providing semantic tagging and navigational aids to ensure documents comply with international accessibility and archival s
html2pdf.js is a client-side JavaScript library used to convert HTML elements and webpages into downloadable PDF documents. It operates entirely within the browser, removing the need for a backend server to generate files. The library employs a conversion pipeline that renders HTML to a canvas before generating the final PDF layout. This process includes the ability to preserve active hyperlinks by overlaying clickable regions on anchor tags and managing page breaks through specific style rules or selectors. Users can configure document appearance through settings for page margins, filenames
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 consiste
jsPDF is a JavaScript PDF generation library and client-side engine that produces documents directly on the user's device. It provides a scriptable interface for creating PDF files within web browsers and other JavaScript runtime environments without requiring a backend server. The library includes a tool for defining document dimensions, orientation, and measurement units to control page layout. It also functions as a Unicode font integrator, allowing for the embedding of custom font files to support diverse languages and special characters. Capability areas cover dynamic document automatio
TCPDF is a PHP library for the programmatic generation of PDF documents, allowing developers to create files containing text, graphics, and forms directly from application code. It includes a typography engine that supports Unicode strings, bidirectional scripts, and the embedding of TrueType or OpenType fonts. The library provides specialized tools for producing documents that adhere to PDF/A, PDF/X, and PDF/UA standards for archiving, printing, and accessibility. It features a digital signing system that applies CMS signatures and RFC 3161 timestamps, supporting long-term validation through
This project is a scientific visualization guide and data visualization framework designed for creating high-quality 2D and 3D figures for academic journals and scientific publishing. It provides a structured approach to designing precise layouts, coordinate systems, and typography for complex scientific data. The project features a specialized print-ready PDF workflow and a CMYK print production workflow. These systems translate digital RGB colors into printer-specific CMYK profiles to ensure visual accuracy for physical hardcover and softcover printing. It also serves as a guide for SVG dat
Gotenberg is a stateless, containerized service that provides a unified API for document conversion, manipulation, and web-to-PDF rendering. It functions as a centralized engine that abstracts complex document processing tasks, allowing users to interact with various rendering tools and libraries through standard HTTP requests. The service distinguishes itself by utilizing headless browser automation to capture web content and by wrapping multiple specialized PDF engines into a single interface. It supports asynchronous task execution, offloading resource-intensive operations to background wo
Templater is an Obsidian template engine and JavaScript automation plugin that functions as a dynamic content generator and workflow orchestrator. It enables the automation of document creation and note-taking tasks through the use of dynamic placeholders and embedded logic. The project distinguishes itself by executing custom JavaScript and shell commands to manipulate files and insert data. It allows for interactive note generation via modal prompts for user input and the import of external JavaScript modules to provide reusable logic outside of template files. Its capabilities include pro
rmarkdown is a dynamic document generator and markdown rendering engine used to create reproducible reports, analysis, and websites. It functions as a literate programming tool that weaves narrative text with live executable code and data, ensuring that visual results are tied directly to the source code. The project serves as a multi-format rendering engine and content publisher, utilizing a Pandoc-based conversion framework to transform a single source file into diverse outputs such as PDFs, HTML pages, and presentation slides. It integrates with Knitr to execute code blocks and capture out
Reveal-md is a command-line tool that transforms Markdown files into interactive, web-based slide decks using the reveal.js framework. It functions as a comprehensive presentation generator, providing an integrated environment for authoring, previewing, and distributing structured slide content. The tool distinguishes itself through a robust development workflow that includes a local server with live reloading, allowing for real-time visual feedback as source files are modified. It supports advanced content customization through metadata-driven configuration, enabling users to define slide hi
Puppeteer Sharp is a .NET wrapper and automation library used to programmatically drive headless Chrome and Chromium browsers. It functions as a Chrome DevTools Protocol client, providing a framework for web scraping and the automation of web page interactions. The project enables the execution of JavaScript within the browser context and supports attaching to remote browser sessions via WebSocket endpoints. It allows for the manipulation of browser states to perform functional web testing and visual regression analysis. Capability areas include content transformation via HTML injection, pag
unioffice is a comprehensive document processing suite that provides a PDF document processor, an Open XML document library, a document security toolkit, and a document content extractor. It is designed to programmatically create, read, and modify Word, Excel, and PowerPoint files, as well as generate and edit PDF documents. The project is distinguished by its native language implementation of the Open XML standard, which removes native binary dependencies to simplify container deployments. It features advanced capabilities for digital document security, including hardware-based PDF signing,
Puppeteer is a JavaScript library for programmatically controlling Chrome and Firefox through the Chrome DevTools Protocol or the WebDriver BiDi protocol. It launches and manages browser instances—typically without a visible user interface—to automate interactions with web pages, enabling navigation, clicking, typing, and data extraction entirely through code. The library distinguishes itself through deep integration with the Chromium embedding layer, allowing fine-grained process configuration with custom flags, permissions, and sandbox policies. It maintains multiple concurrent command stre
This library provides a framework for controlling headless Chrome or Chromium instances through the Chrome DevTools Protocol. It functions as a controller for orchestrating browser lifecycles, enabling developers to automate interactions, extract data, and manage browser processes programmatically within Rust applications. The project distinguishes itself by providing a synchronous interface that wraps asynchronous browser operations, simplifying the control flow for linear automation scripts. It maintains process isolation by spawning independent browser instances as child processes, ensurin
InfoSpider is a personal data aggregator and digital footprint analyzer. It extracts user activity and history from social platforms and local browser database files to consolidate information into a unified format. The system functions as a social media archiving tool that converts feed data and albums from external links into downloadable PDF documents for offline preservation. It also serves as a browser history extractor that reads local SQLite database files to retrieve and analyze web navigation history. The project covers capabilities for data aggregation, digital footprint analysis,
Jinja is a text-based templating library for Python designed to generate dynamic content through expressions, control structures, and template inheritance. It functions as a tool for building dynamic HTML, XML, or plain text documents, providing a structured environment for injecting data into templates to create complex outputs from simple sources. The engine distinguishes itself through a sandboxed execution environment that restricts access to system resources and sensitive functions when evaluating untrusted code. It further ensures secure content delivery by employing context-aware outpu
Browserless is a service-oriented platform designed for remote browser automation and headless execution. It provides a distributed infrastructure that manages browser sessions through containerized isolation, allowing users to execute scripts and interact with web content without maintaining local browser state or infrastructure. The platform functions as a remote API and WebSocket-based control layer, enabling stateless HTTP requests for tasks like document generation and real-time browser interaction. It incorporates proxy-based routing to manage traffic signatures and supports the integra
Quarto is an open-source scientific and technical publishing system built on Pandoc that converts Markdown and Jupyter notebooks into a wide range of output formats. It functions as a multi-format document converter, a reproducible research platform, a static site generator for technical content, and an interactive dashboard builder, all within a single framework. The system is distinguished by its ability to produce HTML, PDF, Word, ePub, and slide decks from a single Markdown source, while embedding executable code blocks in Python, R, Julia, or Observable for dynamic, reproducible document
python-docx-template is a template engine for generating Microsoft Word documents by merging .docx files with data contexts using a logic-based markup syntax. It functions as a document automator that injects variables, images, and sub-documents into Word files while maintaining the original styling. The project uses a rendering system based on Jinja2 to apply template logic and filters to Office Open XML files. It allows for the creation of custom template filters to transform data during the rendering phase and includes a command line interface for producing documents by passing a template