Also known as php-fpdf
TCPDF is a free and open source software PHP class for generating PDF documents. TCPDF is the only PHP-based library that includes complete support for UTF-8 Unicode and right-to-left languages, including the bidirectional algorithm.
TCPDF is in maintenance-only mode. Active development has moved to tc-lib-pdf , its modern, modular successor — new projects should start there. TCPDF is still installed 100M+ times across 500+ PHP packages. If your product depends on it, sponsor continued maintenance → to keep this shared infrastructure secure and patched. TCPDF is a pure-PHP library for generating PDF documents and barcodes directly in application code. It has been widely used across many PHP stacks and still provides a complete feature set for text rendering, page composition, graphics, signatures, forms, and standards-oriented output. Package tecnickcom/tcpdf Author Nicola Asuni License GNU LGPL v3 (see LICENSE.TXT) Website Source Starting with this version, the TCPDF class no longer contains its own PDF engine. It is a compatibility facade : every public TCPDF method is a thin wrapper that delegates the actual PDF generation to the modern tecnickcom/tc-lib-pdf engine ( Com Tecnick Pdf Tcpdf ), while a small internal state layer reproduces the legacy stateful cursor and page model (current X/Y, margins, fonts, colors, automatic page breaks, headers/footers). What this means in practice: The public API is unchanged. All 291 public method signatures (names, parameters, defaults) are identical to legacy TCPDF; existing integrations keep calling new TCPDF(...) , AddPage() , SetFont() , Cell() , writeHTML() , Output() exactly as before. Rendering is done by the modern engine. Text layout, HTML/CSS, fonts, graphics, barcodes, encryption, signatures and output generation come from the tc-lib- libraries. Per-method delegation status is documented. See MAPPING.md for the status of every public method ( delegated , adapter , shim , intentional-noop , blocked ) with notes; the table is machine-verified against the class. Output is structurally equivalent, not byte-identical. Documents render with the same page sizes and content, but the modern engine's line-breaking and font metrics can differ slightly from the legacy implementation (long flowing documents may paginate one page earlier or later). Some legacy behaviors are intentionally not reproduced. A few features are dropped or changed where the modern engine's model takes precedence (legacy font definitions, EPS/AI vector import, always-on stream compression, policy-based local file access, assorted no-ops). See Breaking Changes below and the per-method notes in MAPPING.md for the full list. Active feature development has moved to tc-lib-pdf, the modern and modular successor. For new projects, use tecnickcom/tc-lib-pdf . This repository remains available for legacy systems and critical compatibility fixes. Migration Path New projects: install tecnickcom/tc-lib-pdf . Existing TCPDF users: keep TCPDF for current production workloads and migrate in phases. Teams seeking modern architecture, Composer-first design, and stronger type-safety should prioritize tc-lib-pdf . TCPDF has migrated font loading to the tc-lib font stack (see "Breaking Changes" below). tecnickcom/tc-lib-pdf is the Composer entrypoint. Font assets are provided by tecnickcom/tc-lib-pdf-font and discovered under vendor/tecnickcom/tc-lib-pdf-font/target/fonts/ . Repository-shipped fonts/ assets are removed; TCPDF now resolves bundled fonts from tc-lib assets. Who is affected: Deployments that relied on local fonts/ files without Composer dependencies. Applications with custom K PATH FONTS assumptions tied to a repository-relative fonts folder. Integrations that use custom or generated font definitions and expect PHP-only descriptor files. 1. Install dependencies with Composer. 2. Ensure tc-lib font assets are available in vendor/tecnickcom/tc-lib-pdf-font/target/fonts/ . 3. Keep using SetFont() / AddFont() from TCPDF, but validate that each custom family resolves from tc-lib assets or from your explicit font path. 4. Update deployment packaging so vendor/ font assets are shipped in production. 1. Run make deps to install Composer depende
~3 min read
TCPDF is a free and open source software PHP class for generating PDF documents. TCPDF is the only PHP-based library that includes complete support for UTF-8 Unicode and right-to-left languages, including the bidirectional algorithm.
In 2009, TCPDF was one of the most active of over 200,000 projects hosted on SourceForge (best ranked 6th on 3 April 2010).
Excerpt from the source-code README · 13,706 chars · not written by Vinony
via Wikidata · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).