tecnickcom/tcpdf
Deprecated legacy PDF engine for PHP. Use instead tecnickcom/tc-lib-pdf.
7.0.6
115M downloads/mo
#383 most downloaded on Packagist
tecnickcom/TCPDF
What this package is like to depend on
Last release 2 days ago
21 Aug 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 141 of 151 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
151 releases · first in 2013
12 releases in the last 12 months
see the full history below
Release timeline
151 releases · May 2013 to Aug 2026Releases
latest 60 of 151-
7.0.621 Aug 2026Nothing published for this version
-
7.0.515 Aug 2026Nothing published for this version
-
7.0.413 Jul 2026Nothing published for this version
-
7.0.307 Jul 2026Nothing published for this version
-
7.0.226 Jun 2026Nothing published for this version
-
7.0.119 Jun 2026Nothing published for this version
-
7.0.018 Jun 2026Release notes
Open source →- TCPDF IS DEPRECATED AND IN MAINTENANCE-ONLY MODE
- TCPDF is now a compatibility facade over the modern
tecnickcom/tc-lib-pdfengine. It does not reproduce legacy output exactly, and some methods are adapters, shims, or no-ops (see MAPPING.md); both new and existing projects are encouraged to migrate totecnickcom/tc-lib-pdf.- The
TCPDFclass no longer contains its own PDF engine; every public method delegates rendering to\Com\Tecnick\Pdf\Tcpdf, while a small internal state layer reproduces the legacy cursor/page model (X/Y, margins, fonts, colors, automatic page breaks, headers/footers). - The public API is unchanged: all 291 public method signatures (names, parameters, defaults) match legacy TCPDF, so existing integrations keep working.
- Output is structurally equivalent, not byte-identical: page sizes and content match, but the modern engine's line-breaking and font metrics can differ slightly (long flowing documents may paginate one page earlier or later).
- Per-method delegation status is documented in MAPPING.md (
delegated,adapter,shim,intentional-noop,blocked), machine-verified against the class.
- The
tecnickcom/tc-lib-pdfis now a required Composer dependency; the engine and font assets are resolved fromvendor/.- Minimum PHP version raised to 8.2 (was 7.1).
- Bundled engine sources removed (
include/,tcpdf_fonts.php,tcpdf_font_data.php,tcpdf_images.php,tcpdf_static.php,tcpdf_barcodes_1d.php,tcpdf_barcodes_2d.php); these capabilities are now provided by thetc-lib-*libraries. - Font loading migrated to
tecnickcom/tc-lib-pdf-fontassets resolved via Composer.- Install dependencies with Composer so
vendor/tecnickcom/tc-lib-pdf-font/target/fonts/exists. - Repository bundled
fonts/assets are removed; use tc-lib font assets or explicit custom font paths. - Legacy PHP font descriptors (
fontname.php+fontname.z) are no longer supported; convert the original TTF/OTF with thetc-lib-pdf-fontimporter. - Validate all custom font registrations against tc-lib font assets.
- Install dependencies with Composer so
- Tooling: replaced the legacy test harness with a PHPUnit suite under
test/, added Mago lint/format configuration, and refreshed CI and Makefile targets (make deps,make fonts,make fonts-rebuild). - See README.md for the full migration guide and MAPPING.md for per-method delegation status.
- TCPDF is now a compatibility facade over the modern
- TCPDF IS DEPRECATED AND IN MAINTENANCE-ONLY MODE
-
6.11.321 Apr 2026Release notes
Open source →- Added deprecation notice.
- Improved composer.json.
- Added Makefile for common automation tasks.
- Added deprecation notice.
-
6.11.203 Mar 2026 -
6.11.103 Mar 2026 -
6.11.001 Mar 2026Release notes
Open source →- Updated copyright year.
- Updated linked http urls to https.
- Fix PHP 8.5 deprecation on curl_close() - PR #838
- Fix PHP 8.5 deprecation on null array offset - PR #839
- Fixed: Font subsetting - incorrect placement of head checksum - PR #849
- Fix imagedestroy() deprecation in PHP 8.5 - PR #851
- Fix Rendering of SVG -> PDF issue - PR #855
- Updated copyright year.
-
6.10.121 Nov 2025Release notes
Open source →- cI: Add 8.5 to CI matrix - PR #836
- Fix PHP 8.5 deprecation for xml_parser_free - PR #835
- Fix bad text-align from HTML source - PR #833
- Fix image on footer problems - PR #823
- Preserving percentage gradient decimals and correctly clamp coordinates - PR #815
- Enables compression for PDF/A - PR #820
- cI: Add 8.5 to CI matrix - PR #836
-
6.10.027 May 2025 -
6.9.413 May 2025 -
6.9.320 Apr 2025Release notes
Open source →- New fix for "Deserialization of untrusted data" (check on valid protocols).
- Removed global phar configuration.
- New fix for "Deserialization of untrusted data" (check on valid protocols).
-
6.9.218 Apr 2025Release notes
Open source →- Quick fix for "Deserialization of untrusted data" security vulnerability reported by Positive Technologies.
- Disable phar protocol globally.
- Quick fix for "Deserialization of untrusted data" security vulnerability reported by Positive Technologies.
-
6.9.103 Apr 2025Release notes
Open source →- Fixed "Path Traversal" security vulnerability reported by Positive Technologies.
-
6.9.030 Mar 2025Release notes
Open source →- Added PHP 8.4 testing.
- Removed tcpdf_import.php and tcpdf_parser.php files (for a parser check the tc-lib-pdf-parser project instead).
- Fix composer.json.
- Added PHP 8.4 testing.
-
6.8.226 Jan 2025 -
6.8.023 Dec 2024Release notes
Open source →- Requires PHP 7.1+ and curl extension.
- Escape error message.
- Use strict time-constant function to compare TCPDF-tag hashes.
- Add K_CURLOPTS config array to set custom cURL options (NOTE: some defaults have changed).
- Add some addTTFfont fixes from tc-lib-pdf-font.
- Requires PHP 7.1+ and curl extension.
-
6.7.813 Dec 2024Release notes
Open source →- Improve SVG detection by checking for (mandatory) namespace.
- Use late state binding now that minimum PHP version is 5.5.
- Improve SVG detection by checking for (mandatory) namespace.
-
6.7.726 Oct 2024Release notes
Open source →- Update regular expression to avoid ReDoS (CVE-2024-22641)
- [PHP 8.4] Fix: Curl CURLOPT_BINARYTRANSFER deprecated #675
- SVG detection fix for inline data images #646
- Fix count svg #647
- Since the version 6.7.4, the "0" is considered like empty string and not displayed
- Fixed handling of transparency in PDF/A mode in addExtGState method
- Encrypt /DA string when document is encrypted
- Improve quality of generated seed, avoid potential security pitfall
- Try to use random_bytes() first if it's available
- Do not include the server parameters in the generated seed, as they might contain sensitive data
- Fix bug on _getannotsrefs when there are empty signature appearances but not other annot on a page
- Fix SVG coordinate parser that caused drawing artifacts
- Remove usage of xml_set_object() function
- Update regular expression to avoid ReDoS (CVE-2024-22641)
-
6.7.606 Oct 2024 -
6.7.520 Apr 2024 -
6.7.425 Mar 2024Release notes
Open source →- Upgrade tcpdf tag encryption algorithm.
- Fix regression issue #699.
- Fix security issue.
- [BREAKING CHANGE] The tcpdf HTML tag syntax has changed, see example_049.php.
- New K_ALLOWED_TCPDF_TAGS configuration constant to set the allowed methods for the tcdpf HTML tag.
- Raised minimum PHP version to PHP 5.5.0.
- Upgrade tcpdf tag encryption algorithm.
-
6.6.217 Dec 2022Release notes
Open source →- Ensure pregSplit return type is always array.
- Add ability to run tests on various operating systems (#566)
- Avoid a deprecated error from PHP8.1 (#573)
- Ensure pregSplit return type is always array.
-
6.6.112 Dec 2022 -
6.6.006 Dec 2022Release notes
Open source →- Multi-byte character support for filename during output (#561). (#562)
- Fix garbage collection (#509)
- FIX: PDF417 corrupt output problem, solution set bcmath scale parameter to zero (#534)
- Fix TypeError: count() in PHP8 (#556)
- Fix-getHTMLFontUnits (#547)
- Improved embedded image in HTML allowing src="data:..." format (#552)
- Fix image abscissa when in RTL (#510)
- fix: php 8.1 notices (#548)
- Optimize PNG files (#563)
- Update documentation for a known issue. (#569)
- Fix for PHP 8.1 (#571)
- Multi-byte character support for filename during output (#561). (#562)
-
6.5.012 Aug 2022Release notes
Open source →- encodeUrlQuery takes into account the port (#493)
- Fixing undefined offset error in writeHTML() when last DOM element ha…
- correct some type hints (#495)
- fix: php 8.1 notices (#481)
- Fixed: null check for PHP 8.1 (#476)
- Fix Infinite Loop in Multicell with Auto Page Breaks Off (#473)
- GetCssBorderStyle Has Problem When !important Is Specified (#467)
- Support Apache 2.4 directives in htaccess file (#530)
- Remove examples from dist package (#542)
- encodeUrlQuery takes into account the port (#493)
-
6.4.431 Dec 2021 -
6.4.328 Dec 2021Release notes
Open source →- Fix MultiCell PHPDoc typehint (#407)
- Fix type hint for \TCPDF_STATIC::_freadint (#414)
- Footer and Header font phpdoc fixes + constructor $pdfa phpdoc fix + setHeaderData lw param fix (#402)
- Fix text-annotation state options (#412)
- Fix - Named links have been broken. This fixes. (#415)
- Fixed type in comment for $lw header image logo width in mm
- Change Set to set. Fixes #419 (#421)
- Fix failing tests and failing tests not marking exit code as 1 (#426)
- Fix phpdoc and prefer null as default value (#444)
- Run on PHP 8.1 normally and add nightly PHP as allowed to fail (#452)
- Fix AES128 encryption if the OpenSSL extension is installed (#453)
- Explicitly cast values to int for imagesetpixel (#460)
- Fix cell_height_ratio type (#405)
- Leave   lowercase when using text-transform (#403)
- Fix MultiCell PHPDoc typehint (#407)
-
6.4.220 Jul 2021Release notes
Open source →- Fix PHP 8.1 type error with TCPDF_STATIC::pregSplit on preg_split
- Fix a PHP array offset error
- Fixed phpdoc blocks
- Drop a PHP 4 polyfill and add a .gitattributes file
- Added a test-suite
- Removed pointless assignments
- Fix docblock spelling error
- Update version info
- Fix color being filled to type 0 with PHP 8
- Fix warnings for undefined tags for $lineStyle
- Normalized composer.json
- Allowed transparency in PDF/A-2 and PDF/A-3
- Add a TCPDF composer example
- Fixed implicit conversion from float to int for PHP 8.1
- Removed status.txt from font directories, because of filesize
- Fixed type hints
- Removed "U" modifier from regexes
- Fix PHP 8.1 type error with TCPDF_STATIC::pregSplit on preg_split
-
6.4.127 Mar 2021 -
6.3.514 Feb 2020Release notes
Open source →- Fixed curly braces in pdf417
- Fixed a syntax error issue when accessing an index of a casted variable
- Fixed curly braces in pdf417
-
6.3.412 Feb 2020 -
6.3.312 Feb 2020Release notes
Open source →- Fixed PHP 7.4 - cannot use array offset on integers
- Fixed PDF/A-3B validation issue caused by missing pdfaSchema:property.
- Removed backup changelog files from repo
- Prevents the deletion of non-existent files in /tmp
- Prevent crash in case of no list access in cache path
- Check existence of file before delete it
- Fixed erase users pictures
- Fixed problem with $imagekeys undefined or unlinked
- Fix SVGPath elliptical arc with rx/ry=0 + z should return to initial point
- Fixed PHP 7.4 errors
- handle integers for pages
- Fixed background image doesn't work in RTL
- Fixed PDF/A validity
- Fixed datamatrix.php for PHP 7.4
- Fixed deprecated PHP features
- Fixed PHP 7.4 - cannot use array offset on integers
-
6.3.220 Sep 2019 -
6.3.120 Sep 2019 -
6.3.019 Sep 2019Release notes
Open source →- fix SpotColor handling in HTML
- Add an additional empty test to prevent error in PHP 7.2
- Fix the documentation how to calculate the cell height
- Drop duplicated array indices
- Fix TCPDF_STATIC::fileGetContents()
- Introduce other version of pdfA (2 and 3)
- Add UF and AFRelationship missing
- Fix performance issue of cloned instances
- Change glob to readdir which performs better
- URI in PDF can result in E_NOTICE
- Fix a warning for PHP 7.4
- Fixed gradient offsets for percentage-based stops.
- Fixed file_get_contents return value should also be checked for a non-empty string
- Fix Array and string offset access syntax with curly braces is deprecated
- Fix PHP Warning: chr() expects parameter 1 to be int
- Add a VERSION file
- fix SpotColor handling in HTML
-
6.2.2616 Oct 2018Release notes
Open source →- Update sRGB.icc with the one from the Debian package icc-profiles-free
- Fix unsupported operand types error when codepoints arrays are merged
- Update sRGB.icc with the one from the Debian package icc-profiles-free
-
6.2.2523 Sep 2018 -
6.2.2322 Sep 2018 -
6.2.2214 Sep 2018Release notes
Open source →- Fixes on
include/tcpdf_images.php,include/tcpdf_static.phpandtcpdf.phpabout file handling
- Fixes on
-
6.2.2114 Sep 2018 -
6.2.2014 Sep 2018Release notes
Open source →- Fix for security vulnerability: Using the phar:// wrapper it was possible to trigger the unserialization of user provided data.
-
6.2.1914 Sep 2018 -
6.2.1724 Feb 2018Nothing published for this version
-
6.2.1619 Feb 2018Nothing published for this version
-
6.2.1326 Apr 2017Release notes
Open source →- IMPORTANT: A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this version will not receive any additional development or support. This version should be considered obsolete, new projects should use the new version as soon it will become stable.
-
6.2.1212 Sep 2015 -
6.2.1102 Aug 2015Release notes
Open source →- Bug #1070 "PNG regression in 6.2.9 (they appear as their alpha channel)" was fixed.
- Bug #1069 "Encoded SRC URLs in <img> tags don't work anymore" was fixed.
- Bug #1070 "PNG regression in 6.2.9 (they appear as their alpha channel)" was fixed.
-
6.2.1028 Jul 2015 -
6.2.918 Jun 2015Nothing published for this version
-
6.2.829 Apr 2015 -
6.2.728 Apr 2015Release notes
Open source →- Merged PR 17: Avoid warning when iterating a non-array variable.
- Merged PR 16: Improve MuliCell param definition.
- Improved column check (PR 15).
- Merged PR 11: Use stream_is_local instead of limit to file://.
- Merged PR 10: ImageMagick link on README.txt.
- Merged PR 17: Avoid warning when iterating a non-array variable.
-
6.2.628 Jan 2015 -
6.2.524 Jan 2015Release notes
Open source →- Bug #1019 "$this in static context" was fixed.
- Bug #1015 "Infinite loop in getIndirectObject method of parser" was fixed.
- Bug #1019 "$this in static context" was fixed.
-
6.2.408 Jan 2015Release notes
Open source →- fix warning related to empty K_PATH_URL.
- fix error when a $table_colwidths key is not set.
- fix warning related to empty K_PATH_URL.
-
6.2.318 Dec 2014 -
6.2.218 Dec 2014