80 tools
Lightweight C library, viewer, and CLI toolset for PDF, XPS, and e-book formats: renders and extracts text/images/metadata/structured content; creates, splits, merges, and compresses PDFs; adds annotations (highlights, stamps, shapes); permanently redacts content; digitally signs documents; converts between PDF, SVG, PNG, HTML, and PostScript; and embeds into web pages/apps.
CANSI C library for generating PDFs from scratch: lines, text, and images (PNG/JPEG with CMYK/alpha/CCITT support); Type1/TrueType/CJK font embedding; outlines, text and link annotations; document encryption; Deflate compression; and PDF/A-1b compliant output.
CWrapper script for `groff` that produces PDF documents, including support for a cover page and table of contents.
C#PDFsharp creates and processes PDFs on the fly using GDI+-style drawing routines (text, images, shapes) shared across screen, PDF, and metafile output. MigraDoc layers an object model on top (paragraphs, tables, charts, sections, styles) with automatic pagination, bookmarks, tables of contents, and indexes, rendering to PDF or RTF.
C#Reads and extracts text, words, letters (with position/font data), images, annotations, hyperlinks, embedded files, and bookmarks from PDFs (port of PDFBox); performs layout/reading-order analysis; supports basic PDF creation, merging, read-only AcroForm inspection, and opening password-protected documents.
C#.NET Standard port of PDFsharp that removes the original's GDI+ dependency, using SixLabors.ImageSharp for images and SixLabors.Fonts for typography, for PDF creation/manipulation on non-Windows/.NET Core platforms.
C#Open-source virtual (network) printer for Windows: print-to-PDF, PDF/A-1b/2b/3b, PDF/X, PDF/Image, PNG/JPEG/TIF/text output; OCR; password protection with up to 256-bit AES encryption; and multi-user/enterprise deployment support.
Fluent-API PDF generation library for .NET: page layout, headers/footers, tables, columns, sections, watermarks, text/fonts/colors/backgrounds/borders, images, SVG, alignment/padding/scaling/rotation/layering, loops/conditionals/reusable components for data-driven documents, merging, encryption, metadata, page extraction, and PDF/A, PDF/UA, and EN 16931 (e-invoicing) compliance.
C++C++ library (also known as PDFHummus/PDFWriter, the engine behind HummusJS/Muhammara) for creating, parsing, and modifying PDFs: JPEG/PNG/TIFF image embedding, PDF 2.0 encryption (via OpenSSL), and FreeType-based text rendering.
C++C++17 library for reading, writing, and modifying PDFs: full-featured low-level Unicode text extraction (with CJK support), text drawing with automatic CID encoding and font subsetting, incremental-update saving, PAdES-B digital signing (RSA/ECDSA, async), and PDF/A and PDF/UA compliance preservation when adding annotations or form fields. Does not yet render PDF content, and text shaping/kerning is limited.
C++Free, open-source desktop publishing (DTP) application for laying out newspapers, brochures, newsletters, posters, and books, with professional-grade PDF export: PDF/X-3 and PDF/X-4 support, native PDF 1.6 output with embedded OpenType fonts, transparency and encryption, and interactive PDF form fields, annotations, and bookmarks.
C++Handwriting notetaking application (GTK3) that annotates on top of PDFs: highlight, underline, or strike through selected/copied PDF background text, follow links in the background PDF, and export annotated notes to SVG, PNG, or PDF from the GUI or command line. Supports pen/stylus input (e.g. Wacom tablets).
ClojureGenerates PDFs from Clojure data structures: text/typography with custom TTF fonts, CSS-like stylesheets, lists, tables, multi-column layouts, SVG and image embedding, bar/line/pie charts, headers/footers, page numbering, document metadata, file attachments, and watermarks.
DartSet of Dart/Flutter packages (`pdf` for core PDF generation, `printing` for device print/preview integration) that let Flutter apps generate and print PDF files on iOS and Android.
GoGo library for generating PDFs: text with UTF-8/RTL support, standard/TrueType/Type1 fonts, JPEG/PNG/GIF/TIFF images and basic SVG, vector graphics (lines, Bézier curves, arcs, gradients, transparency), barcodes, charts, outline bookmarks, internal/external links, page templates and importing existing PDFs as templates, layers, document protection/encryption, and file attachments/annotations.
Go library for generating PDFs: Unicode/CJK subfont text with kerning, alignment, sub/superscript, RGB/CMYK color; vector shapes (lines, ovals, rounded rectangles, polygons, curves); JPG/PNG images with masking; password protection with permissions; headers/footers, links, transparency/blend modes; table layout; page rotation; and importing/reusing existing PDF pages as templates.
GoGo PDF library (pure Go): generates reports/invoices with styled text and tables; creates and fills forms; merges, splits, reorders, and rotates pages (incl. N-up layouts); extracts text (with position/formatting), images, and tabular data to CSV; adds/converts images to PDF; removes or adds password protection; validates and applies digital signatures; compresses/optimizes files; adds watermarks; and supports CCITTFax/JBIG2 image decoding.
GoGo library (built on gopdf) for generating banded PDF reports — page headers/footers, grouped headers/summaries, detail bands, and a report summary — with text cells, lines, rectangles/ovals, JPEG images, TrueType fonts, and multiple page sizes/orientations.
GoREST API that generates invoices as PDFs from supplied details (invoice number, dates, sender/recipient, line items, terms), with SDKs for JS/Node, Python, C#/.NET, PHP, Go, Dart, and Android.
GoSelf-hostable 'knowledge converter' that extracts highlighted text, formulas, and images from PDFs (plus Word/Excel/images, WeChat Reading notes, and mind maps) to generate Anki flashcards, using an LLM (Gemini, GPT-4, Claude, etc.) to identify key concepts automatically; also batch-exports Anki decks back to PDF.
HaskellHaskell PDF library supporting on-demand/streaming parsing (without loading the whole file into memory) at both high-level (catalog, page tree, pages) and low-level (xref, trailer, objects, incl. xref/object streams) abstraction; extracts text with exact glyph positions; supports incremental-update editing, basic PDF generation, and partial support for encrypted documents.
JavaPrint formatter driven by XSL Formatting Objects (XSL-FO): reads an FO tree (often produced via XSLT from semantic XML) and renders it to PDF (its primary target, targeting the PDF 1.4 spec), plus PostScript, PCL, AFP, PNG, RTF, TXT, and other outputs. Handles multi-page tables, footnotes, static page regions, and external graphics; usable standalone, embedded, via servlet, or via an Ant task.
JavaJava library and CLI toolset covering PDF creation from scratch (with embedded fonts/images); Unicode text extraction; splitting and merging; form field extraction and filling; PDF/A-1b validation via Preflight; rendering pages to PNG/JPEG; printing via the Java printing API; and digital signing.
JavaPDF creation/manipulation library: creates PDFs from scratch and modifies existing ones (add/remove pages, edit text); HTML-to-PDF conversion (openpdf-html module); text, fonts, graphics, images, and tables; page layout control; encryption and digital signing (via BouncyCastle); text extraction; PDF-to-image rendering (openpdf-renderer); and PDF 2.0 (ISO 32000-2) features including Brotli stream compression.
JavaLegacy iText 5: core PDF creation/manipulation library (receiving security fixes only), with add-on modules for PDF 2.0 features (itext-xtra), PDF/A generation/validation (itext-pdfa), and XML/HTML-to-PDF conversion (xmlworker). Targets Java 5 compatibility, which blocks upgrading some vulnerable dependencies.
Java reporting engine that compiles XML report templates (.jrxml) into executable reports (.jasper), pulling data from any data source to produce pixel-perfect documents; exports to PDF, HTML, Excel, Word, and OpenOffice formats, and renders Pie/Bar/Stacked Bar charts. Designed with Jaspersoft Studio and embeddable via API.
JavaCreate and manipulate PDFs, merge documents, digitally sign, create/fill AcroForm fields, PDF/A and PDF/UA generation, encryption (incl. FIPS-compliant crypto), barcode generation, SVG embedding, content redaction, and (via separate add-ons) OCR and HTML/CSS-to-PDF conversion.
Fast Node.js module (native binding around the C++ PDFWriter/PDFHummus engine) for creating, parsing, and manipulating PDF files and streams.
JavaScriptClient-side JavaScript library for generating PDFs in the browser or Node: configurable paper size/orientation/units, text with 14 standard fonts or custom embedded TTF/Unicode fonts, images, transformation matrices, patterns, and FormObjects; plugin ecosystem adds HTML-to-PDF (via html2canvas) and table generation. Ships as ES module, UMD, or with TypeScript typings. (Originally MrRio/jsPDF, now hosted under github.com/parallax/jsPDF, which the old URL redirects to.)
JavaScriptOpen-source report-rendering platform: design reports with templating engines (e.g. Handlebars) or a visual designer, and render them to PDF, HTML, Excel, DOCX, and other formats; includes user management, a REST API, scheduling, and email delivery. Usable standalone or embedded as a Node.js library.
JavaScriptDependency-free JavaScript library (works in browsers, Node, Deno, React Native) to create PDFs from scratch or modify existing ones: add/insert/remove/copy pages, draw text (with embedded custom fonts), images (PNG/JPEG), vector graphics and SVG paths; create and fill AcroForm fields (text, checkbox, radio, dropdown) and read/flatten them; embed pages from other PDFs, split and merge documents, add file attachments, and read/set document metadata.
PDF generation library (Node and browser) with an HTML5-canvas-like vector graphics API (paths, SVG path parsing, gradients, transformations), text with line-wrapping and bulleted lists, embedded/subsetted TrueType/OpenType/WOFF/WOFF2 fonts, JPEG/PNG image embedding, tables, annotations (links, notes, highlights), AcroForms, document outlines, encryption with granular permission controls, and Tagged-PDF/PDF-UA accessibility support.
JavaScriptDeclarative, pure-JavaScript (client/server) PDF generation library: text with line-wrapping/alignment, numbered/bulleted lists, page breaks and sections, tables (auto/fixed/star column widths, spanning, repeating headers, multi-column snaking layouts), images and vector graphics, static/dynamic headers and footers, background layers, custom page size/orientation/margins, embedded fonts, table of contents, and PDF metadata.
JavaScriptFree, registration-free invoice generator (React/Redux Progressive Web App) that creates and previews invoices and exports them as PDFs; works offline and can be installed to a device home screen.
Creates PDF files using React components (`Document`, `Page`, `Text`, `View`) with a StyleSheet/flexbox styling API; renders in-browser via `<PDFViewer>` or saves to file/buffer in Node. (Complementary to wojtekmaj/react-pdf, which displays existing PDFs rather than creating them.)
JavaScriptRuns a precompiled LibreOffice binary inside AWS Lambda to convert documents to PDF (and between other office formats) at low cost, with Terraform examples, a Node.js Lambda handler (with S3 integration), and a Docker setup for compiling LibreOffice yourself.
Node.js module for creating, reading, and modifying PDF files and streams — a drop-in replacement for HummusJS built on the same underlying PDF-Writer/PDFHummus C++ engine.
JavaScriptPlugin for PDFKit that inserts SVG graphics into PDF documents generated with PDFKit.
JavaScript-only SVG-to-PDF conversion utility that runs in the browser, built on top of jsPDF.
JavaScriptLibrary for creating PDF documents directly from React components in the browser.
JavaScriptPDF generation library targeting both server- and client-side JavaScript. (Not to be confused with Mozilla's PDF.js, a PDF rendering/viewing engine — this is an unrelated, same-named PDF-creation library.)
JavaScriptTypeScript PDF generation toolkit for Node.js and browsers: generates PDFs from simple JSON templates, includes a WYSIWYG template designer and a PDF viewer component, plus CLI tools for template validation, diagnostics, and image-based layout inspection.
LaTeXA general-purpose document processor built on top of TeX, used by pandoc as one of its PDF-producing engines.
LaTeXLaTeX/Pandoc template that separates CV content (stored in a YAML file) from a LaTeX presentation template, compiling to a professionally typeset PDF via a makefile; supports configurable fonts, sizes, language/hyphenation, and margins.
LaTeX/Pandoc/XeTeX template that generates invoice PDFs from a YAML data file (`details.yml`), auto-calculating line totals and VAT via the `spreadtab` package, with configurable fonts/margins/currency/language, optional embedded signature image, and optional custom letterhead PDF layered underneath.
Perl script that automates the process of generating a LaTeX document by running pdflatex/xelatex/lualatex (and bibtex/makeindex) the correct number of times.
LaTeXLaTeX/XeTeX/Pandoc template that generates letter PDFs from a Markdown file with a YAML header (recipient, date, subject); supports custom fonts, sizes, margins, language/hyphenation, an auto-embedded signature image, and an optional custom letterhead PDF background, built via a makefile.
TeX engine that combines LaTeX with the LuaTeX extension, allowing scripting with Lua embedded in the typesetting process.
LaTeXTeX engine (pdfTeX in LaTeX mode) that produces PDF output directly from LaTeX source instead of DVI, the most common default LaTeX engine.
LaTeXTeX engine (XeTeX in LaTeX mode) with native support for Unicode and system fonts (TrueType/OpenType) via the OS's font layout engine.
Cross-platform Common Lisp library for generating PDF files without third-party tools: TrueType/Type 1 fonts (with Unicode), PNG image embedding, barcode generation, charting, optional zlib compression, and a PDF templating system; pairs with cl-typesetting for a full document-composition system.
Perl module for creating and modifying PDFs: page management (add/insert/import pages, page labels); built-in and embedded (TrueType/OpenType/Type1/bitmap) fonts; image import (GIF/JPEG/PNG/PNM/TIFF); barcode generation (Code128, Code39, EAN-13, QR, Codabar, ITF); spot/device colorspaces and custom color palettes; document metadata; outlines/bookmarks; and viewer preferences/page layout modes.
PerlPerl module for building PDFs by reusing existing pages as templates/backgrounds: adds positioned/rotated text, embeds JPEG images, hyperlinks, and raw PDF operators; supports built-in and embedded TrueType (UTF-8) fonts, hierarchical bookmarks, attached/embedded JavaScript actions, form field value assignment, and content stream compression.
PerlPart of the Prima Perl graphics toolkit: provides a PDF output interface to Prima::Drawable, letting Prima's drawing API render directly to PDF (alongside sibling modules for PostScript and Type1 font output).
PerlPerl module (built on PDF::Reuse) for generating multi-page PDFs: text with font/size/color control, 14 built-in fonts plus custom TTF embedding (with Unicode), alignment and rotation, regex-based text formatting, JPEG image embedding, importing pages from existing PDFs as templates, horizontal rules, raw content streams, and auto-sized tables with headers, borders, padding, and page-overflow handling.
PerlPure-Perl (PDF 1.0–1.3), dependency-free module for creating PDFs: multi-page documents with standard paper sizes and page rotation/crop/bleed/trim boxes; built-in PostScript fonts with Unicode/international character support; lines, GIF/JPEG image embedding, and clickable URI link annotations; hierarchical outline/table of contents; and document metadata.
Perl module that generates PDFs from XML templates (an HTML::Template-style approach) using PDFlib as the rendering backend, with precise element positioning, parameter substitution with hierarchical scoping, automatic page breaks accounting for headers/footers, and one header/footer per page definition.
Writes and reads OOXML (Word 2007+), ODF (ODT), RTF, HTML, and PDF documents: sections with headers/footers/page numbering, styled text runs and paragraphs, tables, images (local/remote/watermark), drawing shapes, charts (pie/bar/line/area/scatter/radar), OLE objects, TOCs, footnotes/endnotes, form fields, lists, template-based generation, and XSL transforms.
PHPPure-PHP PDF/barcode generation library covering PDF/barcode generation, text/graphics, digital signatures, form fields, password/public-key encryption, and HTML/CSS rendering.
UTF-8/RTL text with TrueType/OpenType/Type1/CID-0 font support and subsetting; HTML/CSS and SVG rendering with multi-column layouts, headers/footers, bookmarks, and TOC; JPEG/PNG/SVG images (plus GIF/BMP/TIFF/etc. via GD); RC4/AES-256 encryption; PAdES/PKCS#7 digital signatures with RFC 3161 TSA timestamps and LTV; PDF/A, PDF/X, and PDF/UA compliance modes; page import/reordering; AcroForm fields; and companion-package barcode support.
PHPFree PHP class for generating PDF files in pure PHP, with no PDF library/extension dependency.
PythonPython port of the PHP FPDF library for generating PDFs: Unicode (UTF-8) TrueType font subset embedding, I2of5/Code39 barcodes (QR planned), PNG/GIF/JPG images (incl. transparency/alpha), and templates with a visual designer plus basic HTML-to-PDF.
PythonCLI tool and Python module that converts source code files to PDF with syntax highlighting (23+ selectable style themes), optional line numbering, and configurable paper sizes (A2–A5, etc.).
Pure-Python, batch-mode document processor that renders reStructuredText or CommonMark to PDF (and can run as a Sphinx builder in place of LaTeX): page layout with columns, running headers/footers, floats and footnotes; auto-generated TOC and index; auto-numbered/cross-referenced headings, figures, and tables; OpenType/TrueType/Type1 fonts with kerning/ligatures/small-caps (incl. 1000+ bundled Google Fonts); embedded PDF/PNG/JPEG images with preserved transparency/color profiles; and optional math typesetting.
PythonDjango-friendly wrapper around ReportLab for generating PDFs: report and letter templates (including a confidential-report variant with security markings), headings/paragraphs/lists/tables/rules/spacers/page breaks, a predefined style system, SVG drawing (via svglib), watermarks/confidentiality markers, mini-HTML markup, and direct ReportLab canvas access.
Python bindings for MuPDF covering text extraction (plain, rich dictionary with font/size/color/bbox, HTML/XML, raw blocks, table-to-Markdown); embedded image extraction and high-DPI page rendering to Pixmaps; Tesseract-based OCR (100+ languages); reading/writing annotations (highlights, notes, stamps, ink) and redactions (with permanent apply); AcroForm reading and filling; page insert/delete/reorder, merge/split, and metadata editing; PDF creation and Markdown-to-PDF conversion; password protection/RC4/AES encryption; hyperlink and cross-reference handling; and outline/bookmark read-write.
PythonPython ctypes bindings to Google's PDFium: renders pages to images, extracts text, reads metadata/bookmarks/page properties, creates new PDFs and inserts images/pages, and searches for text — with both convenience helper classes and raw PDFium API access.
PythonOpen-source Python library for programmatic PDF generation: precise low-level canvas drawing (text, vector graphics, images) plus a higher-level Platypus layout engine (flowables, paragraphs, tables, automatic pagination) for building complex reports and documents; widely used as the rendering engine underneath other PDF tools (e.g. the included PDFDocument wrapper).
PythonUnicode TrueType font subset embedding, cell/multi-cell/plaintext writing with automatic page breaks, optional Markdown-like text styling, image embedding with transparency, SVG import, arbitrary path drawing, table generation, internal/external links, barcodes/charts/emoji, document encryption and digital signing, annotations (highlights, file attachments), HTML-to-PDF conversion, basic math rendering, and TOC/outline generation.
PythonPure-Python library for reading, creating, and manipulating PDFs, modeling the file as a JSON-like structure of nested lists/dictionaries/primitives for programmatic access.
RubyPure-Ruby PDF generation library: vector drawing (lines, polygons, curves, ellipses); flowing text with inline formatting, builtin/embedded TrueType fonts, UTF-8, RTL, and fallback fonts; PNG/JPG image embedding; a basic grid layout system; encryption and password protection; repeatable headers/footers/page numbers; PDF outlines; and low-level PDF object access for extensions. Explicitly not an HTML-to-PDF generator, though it offers limited inline styling.
RubyGhostscript-based document API that generates documents programmatically and converts between PDF, PS, GIF, TIF, PNG, and JPG, with support for EPS templates and optimizations for handling large documents.
Ruby framework that converts Markdown (with ERB templating) into PDF (via Prince XML), EPUB, Mobi, and HTML e-books: auto-generated tables of contents from headings, Rouge syntax highlighting, custom @font-face fonts, book-layout stylesheets per format, frontmatter metadata/variables, and pre/post-render content hooks.
RubyPDF library and CLI (positioned as a pdftk/Poppler-utils alternative): creates PDFs from scratch with vector drawing, JPEG/PNG/PDF image embedding, and TrueType text with subsetting; a high-level document composition engine (automatic layout, text flow, page breaks, lists, multi-column, reusable styles); modifies and merges existing PDFs; creates AcroForms with Adobe-like appearances; adds annotations, outlines, and file attachments; extracts metadata/text/images/files; encrypts (incl. PDF 2.0 AES-256) and digitally signs; and optimizes file size with object validation.
RubyPure-Ruby (no external system libraries) invoice-PDF generator, usable as a library, CLI, or server: A4/US Letter formats, purchaser/provider info boxes with addresses and tax IDs, SWIFT/IBAN payment details, itemized tables (description/quantity/price/tax/totals), automatic page numbering, customizable labels, custom fonts/logos/backgrounds/stamps/signatures/QR codes, and JSON-driven invoice data — fast enough for real-time request handling.
RubyNative PDF converter for AsciiDoc (the `pdf` Asciidoctor backend), converting directly to PDF without an intermediate DocBook/LaTeX step: style/layout control via YAML theme files, syntax highlighting, tables, images, and SVG. Built on the Prawn gem and its extensions (prawn-svg, prawn-table, prawn-icon).
RubyPure-Ruby framework for parsing, modifying, and creating PDF files, with lazy on-demand parsing: compression filters with predictors, RC4/AES encryption (including Revision 6), digital signatures and usage rights, file attachments, AcroForm/XFA forms, and object streams. Ships CLI tools including `pdfcop` for detecting dangerous PDF content (not a full malware-analysis/forensics suite by the author's own description) plus decompression, decryption, encryption, resource-extraction, and metadata-inspection utilities.
Rails gem that renders inline PDFs from normal Rails view templates (`.pdf.prawn` / `.pdf.erb`) using the Prawn library, exposing a `pdf` object in views with global or per-document configuration and metadata (title, author, page size).
Modernized, complete, self-contained TeX/LaTeX engine powered by XeTeX and TeXLive, used by pandoc as one of its PDF-producing engines.
SwiftSwift/iOS library that generates PDFs from UIViews (including full scrollable content of UIScrollView/UITableView/UICollectionView/UIWebView), UIImages, image file paths/binary data, CGImages, or blank pages; supports multi-page output to Data or disk, custom DPI (72/300), and password protection with separate user/owner passwords.