TCPDF Creator & Producer
Understanding PDF metadata that shows TCPDF as the Creator or Producer — learn how this powerful open-source PHP class generates feature-rich PDF documents with Unicode, barcodes, digital signatures, and more.
📄 About This PDF Metadata
When you examine a PDF file's properties and see TCPDF [version] (http://www.tcpdf.org) as the Producer, it indicates that the document was generated using TCPDF — one of the most feature-rich open-source PHP libraries for PDF creation.
Sample PDF Metadata from TCPDF:
Title: Sales Report Q4 2024
Author: Finance Department
Creator: Enterprise Report System
Producer: TCPDF 6.10.1 (http://www.tcpdf.org)
Creation Date: 2025-01-27 14:30:00
PDF Version: 1.7
By default, TCPDF sets the Producer field to "TCPDF [version] (http://www.tcpdf.org)" automatically. This value is hardcoded and intended to remain unchanged for tracking and debugging purposes. The Creator field can be customized using SetCreator().
PDF Creator
Set with SetCreator() — shows the application name that generated the PDF (e.g., "Invoice System", "Report Generator").
PDF Producer
Automatically set to TCPDF [version] (http://www.tcpdf.org) — identifies TCPDF as the underlying PDF engine.
📚 What is TCPDF?
TCPDF is a free and open-source PHP class library for generating PDF documents on-the-fly without requiring external extensions. Created by Nicola Asuni of Tecnick.com LTD, development began on August 3, 2002. It has evolved into one of the world's most active open-source PHP PDF projects, used by millions of users daily and integrated into thousands of CMS and web applications.
Library Information
| Author: | Nicola Asuni |
| Company: | Tecnick.com LTD |
| Development Started: | August 3, 2002 |
| Current Version: | 6.10.1 (Nov 2025) |
| Website: | tcpdf.org |
Technical Details
| License: | GNU LGPL v3 |
| Language: | PHP |
| Dependencies: | None (basic functions) |
| GitHub: | tecnickcom/TCPDF |
| Composer: | tecnickcom/tcpdf |
Why TCPDF?
Full Unicode Support
UTF-8, RTL languages, bidirectional text, CJK support
1D & 2D Barcodes
QR codes, DataMatrix, PDF417, EAN, UPC, CODE 128, and more
Security Features
256-bit encryption, digital signatures, PDF/A-1b compliance
💡 TCPDF vs FPDF
TCPDF was originally based on FPDF but has been significantly extended with advanced features. While FPDF is lightweight and simple, TCPDF offers Unicode, HTML/CSS support, barcodes, digital signatures, and much more — making it suitable for enterprise-grade PDF generation.
⚙️ How TCPDF Creates PDFs
TCPDF generates PDF documents directly in PHP without requiring external libraries:
PDF Generation Workflow:
Initialize
new TCPDF()
Configure
Metadata, fonts, margins
Add Content
Text, HTML, images, barcodes
Output
File, browser, email
✨ Key Features
📝 Text & Typography
- UTF-8 Unicode and RTL languages
- TrueType, OpenType, Type1, CID-0 fonts
- Font subsetting (reduce file size)
- Text hyphenation, stretching, kerning
- Multiple columns mode
🌐 HTML & CSS
- XHTML + CSS code rendering
- JavaScript support
- PDF forms (interactive)
- Annotations, links, file attachments
- Table of contents with bookmarks
📊 Barcodes
- 1D: CODE 39, CODE 93, CODE 128, EAN-8, EAN-13, UPC-A, UPC-E, POSTNET, CODABAR
- 2D: QR Code, DataMatrix ECC200, PDF417
- Custom colors and sizes
🖼️ Images & Graphics
- JPEG, PNG, SVG native support
- GD and ImageMagick integration
- Geometric shapes, transformations
- ICC color profiles, CMYK, spot colors
- Transparencies and layers
🔐 Security
- Document encryption (up to 256-bit)
- Digital signature certifications
- PDF/A-1b (ISO 19005-1:2005) support
- Permission controls
📄 Document Features
- All standard page formats + custom
- Automatic headers and footers
- Page compression (zlib)
- XObject templates
- Move and delete pages
📤 How to Use TCPDF
TCPDF is easy to install via Composer or manual download:
Installation:
# Using Composer (recommended)
composer require tecnickcom/tcpdf
# Or download from GitHub
git clone https://github.com/tecnickcom/TCPDF.git
Basic Example with Metadata:
<?php
require_once('vendor/autoload.php');
// Create new PDF document
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8');
// Set document metadata
$pdf->SetCreator('My Application');
$pdf->SetAuthor('John Doe');
$pdf->SetTitle('Sample Document');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP');
// Remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// Add page and content
$pdf->AddPage();
$pdf->SetFont('helvetica', 'B', 20);
$pdf->Cell(0, 10, 'Hello World!', 0, 1);
// Output PDF
$pdf->Output('document.pdf', 'I');
?>
Adding HTML Content:
// Write HTML content
$html = '<h1>Invoice #12345</h1>
<table border="1">
<tr><th>Item</th><th>Price</th></tr>
<tr><td>Product A</td><td>$99.00</td></tr>
</table>';
$pdf->writeHTML($html, true, false, true);
Adding QR Code:
// 2D Barcode - QR Code
$pdf->write2DBarcode(
'https://example.com', // data
'QRCODE,H', // type (H=high error correction)
20, 30, // x, y position
50, 50 // width, height
);
🔍 Understanding PDF Metadata
TCPDF provides methods to set all standard PDF metadata fields:
| Metadata Field | TCPDF Method | Description | Default Value |
|---|---|---|---|
| Title | SetTitle(string) |
Document title | Empty |
| Author | SetAuthor(string) |
Document author | Empty |
| Subject | SetSubject(string) |
Document subject | Empty |
| Keywords | SetKeywords(string) |
Searchable keywords (comma-separated) | Empty |
| Creator | SetCreator(string) |
Application that created the document | Empty |
| Producer | Hardcoded | Library that produced the PDF | TCPDF [version] (tcpdf.org) |
| Creation Date | Automatic | When the document was created | Current timestamp |
⚠️ Producer Field Note
The Producer field is intentionally hardcoded in TCPDF and should not be changed. According to Nicola Asuni, this is "to easily track and fix documents in the future." To override it, you must extend the TCPDF class.
Sample Producer Values:
| TCPDF Version | Producer Value |
|---|---|
| TCPDF 6.10.1 | TCPDF 6.10.1 (http://www.tcpdf.org) |
| TCPDF 6.7.5 | TCPDF 6.7.5 (http://www.tcpdf.org) |
| TCPDF 6.6.2 | TCPDF 6.6.2 (http://www.tcpdf.org) |
| TCPDF 6.4.3 | TCPDF 6.4.3 (http://www.tcpdf.org) |
| TCPDF 6.2.13 | TCPDF 6.2.13 (http://www.tcpdf.org) |
Comparison with Related Libraries:
| Library | Producer Value |
|---|---|
| FPDF | FPDF [version] |
| mPDF | mPDF [version] |
| Dompdf | dompdf + CPDF |
| tc-lib-pdf (new) | tc-lib-pdf [version] |
🛠️ Troubleshooting
Common issues when using TCPDF:
Memory Exhausted or Timeout Errors
Cause: TCPDF can be memory-intensive, especially with large documents, many images, or complex fonts.
Solution: Increase PHP memory limit (ini_set('memory_limit', '256M')) and execution time (set_time_limit(300)). Use font subsetting to reduce font data. Optimize images before embedding. Consider splitting large documents into multiple PDFs.
Font Not Displaying Correctly
Cause: Font not installed, wrong font path, or font cache issues.
Solution: Ensure the font file is in the TCPDF fonts directory. Use addTTFfont() to add custom TrueType fonts. Clear the font cache directory. For Unicode text, ensure you're using a Unicode-enabled font like DejaVu Sans or FreeSerif.
HTML/CSS Not Rendering Properly
Cause: TCPDF supports a subset of HTML/CSS, not full browser rendering.
Solution: Use simple, table-based layouts. Avoid complex CSS like flexbox, grid, or floats. Test incrementally. Check the TCPDF examples for supported HTML tags and CSS properties. Use inline styles where possible.
Headers Already Sent Error
Cause: Output was sent to the browser before PDF generation.
Solution: Ensure no whitespace, BOM characters, or echo/print statements before Output(). Use ob_start() at the beginning of your script and ob_end_clean() before output. Check included files for trailing whitespace.
Images Not Appearing in PDF
Cause: Invalid image path, unsupported format, or permission issues.
Solution: Use absolute paths for images. Verify the image file exists and is readable. TCPDF supports JPEG, PNG, and SVG natively. For GIF or other formats, ensure GD or ImageMagick is installed. Check server permissions on image directories.
❓ Frequently Asked Questions
When a PDF shows "TCPDF [version] (http://www.tcpdf.org)" as the Producer, it means the PDF was generated using TCPDF, a powerful open-source PHP class for PDF generation. TCPDF is one of the most feature-rich PHP PDF libraries, supporting Unicode, barcodes, digital signatures, and much more.
Yes, TCPDF is free and open source, licensed under the GNU Lesser General Public License (LGPL v3). You can use it in commercial projects without releasing your application's source code. However, if you modify TCPDF itself, you must release those modifications under the same LGPL license.
TCPDF development began on August 3, 2002 by Nicola Asuni of Tecnick.com LTD. It has been continuously maintained for over 20 years and has evolved into one of the world's most active open-source PHP PDF projects, used by millions of users and integrated into thousands of applications.
TCPDF is significantly more feature-rich than FPDF. While FPDF is lightweight and simple, TCPDF adds: full UTF-8 Unicode support, RTL languages, XHTML+CSS rendering, JavaScript, 1D/2D barcodes (QR codes, etc.), digital signatures, PDF/A-1b compliance, and many more advanced features. TCPDF is better suited for enterprise applications.
The Producer field is intentionally hardcoded in TCPDF. According to the author, Nicola Asuni, this is by design "to easily track and fix documents in the future." To change it, you would need to extend the TCPDF class and override the relevant method, but this is not recommended.
TCPDF supports extensive barcode generation: 1D barcodes include CODE 39, CODE 93, CODE 128, Interleaved 2 of 5, EAN-8, EAN-13, UPC-A, UPC-E, MSI, POSTNET, PLANET, CODABAR, CODE 11, PHARMACODE. 2D barcodes include QR Code, DataMatrix ECC200, and PDF417.
The classic TCPDF library is in support-only mode (bug fixes, security updates). A new version called tc-lib-pdf is under active development at github.com/tecnickcom/tc-lib-pdf. For new projects, consider using the new library once it reaches full feature parity.
🛠️ Related Tools
PDF Metadata Viewer
Free tool to view PDF metadata including Creator, Producer, and version information.
View PDF Metadata →📝 Summary: TCPDF PDF Metadata
- Author: Nicola Asuni (Tecnick.com)
- Development started: August 2002
- Producer shows TCPDF [version]
- License: GNU LGPL v3
- No external dependencies
- Current version: 6.10.1
- Full UTF-8 Unicode and RTL
- 1D/2D barcodes (QR, PDF417, etc.)
- Digital signatures and encryption
- PDF/A-1b compliance