PHPackages                             luisaugustobraga/tcpdi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. luisaugustobraga/tcpdi

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

luisaugustobraga/tcpdi
======================

TCPDI is a PHP class for importing PDF to use with TCPDF

1.0.3(7y ago)07.1k↓50%Apache-2.0PHPPHP &gt;=5.3.0CI failing

Since Apr 5Pushed 4y ago1 watchersCompare

[ Source](https://github.com/luisaugustoizeppibraga/tcpdi)[ Packagist](https://packagist.org/packages/luisaugustobraga/tcpdi)[ RSS](/packages/luisaugustobraga-tcpdi/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (1)Versions (5)Used By (0)

TCPDI
=====

[](#tcpdi)

Composer ready [TCPDI](https://github.com/pauln/tcpdi) with PDF annotations handling.

PDF importer for [TCPDF](http://www.tcpdf.org/), based on [FPDI](http://www.setasign.de/products/pdf-php-solutions/fpdi/). Requires [pauln/tcpdi\_parser](https://github.com/pauln/tcpdi_parser) and [FPDF\_TPL](http://www.setasign.de/products/pdf-php-solutions/fpdi/downloads/)which included in the repository.

Installation
------------

[](#installation)

Link package in composer.json, e.g.

```
{
    "require": {
        "luisaugustobraga/tcpdi": "dev-master"
    }
}
```

Usage
-----

[](#usage)

Usage is essentially the same as FPDI, except importing TCPDI rather than FPDI. It also has a "setSourceData()" function which accepts raw PDF data, for cases where the file does not reside on disk or is not readable by TCPDI.

```
// Create new PDF document.
$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// Add a page from a PDF by file path.
$pdf->AddPage();
$pdf->setSourceFile('/path/to/file-to-import.pdf');
$idx = $pdf->importPage(1);
$pdf->useTemplate($idx);

$pdfdata = file_get_contents('/path/to/other-file.pdf'); // Simulate only having raw data available.
$pagecount = $pdf->setSourceData($pdfdata);
for ($i = 1; $i importPage($i);
    $pdf->AddPage();
    $pdf->useTemplate($tplidx);
}
```

As of version 1.1, TCPDI also includes additional functionality for handling PDF Annotations. As annotations are positioned relative to the bleed box rather than the crop box, you'll need to ensure that you're importing the full bleed box; a new function has also been introduced to set the page format (the various boxes, including the crop box) from the imported page, so that the imported page matches the original better. The following example demonstrates this:

```
// Create new PDF document.
$pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// Add a page from a PDF by file path.
$pdf->setSourceFile('/path/to/file-to-import.pdf');

// Import the bleed box (default is crop box) for page 1.
$tplidx = $pdf->importPage(1, '/BleedBox');
$size = $pdf->getTemplatesize($tplidx);
$orientation = ($size['w'] > $size['h']) ? 'L' : 'P';

$pdf->AddPage($orientation);

// Set page boxes from imported page 1.
$pdf->setPageFormatFromTemplatePage(1, $orientation);

// Import the content for page 1.
$pdf->useTemplate($tplidx);

// Import the annotations for page 1.
$pdf->importAnnotations(1);
```

TCPDI\_PARSER
=============

[](#tcpdi_parser)

Parser for use with TCPDI, based on TCPDF\_PARSER. Supports PDFs up to v1.7.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~311 days

Total

4

Last Release

2763d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25639572?v=4)[Luís Augusto Braga](/maintainers/luisaugustoizeppibraga)[@luisaugustoizeppibraga](https://github.com/luisaugustoizeppibraga)

---

Top Contributors

[![luisaugustoizeppibraga](https://avatars.githubusercontent.com/u/25639572?v=4)](https://github.com/luisaugustoizeppibraga "luisaugustoizeppibraga (12 commits)")[![DJTripper](https://avatars.githubusercontent.com/u/18283090?v=4)](https://github.com/DJTripper "DJTripper (10 commits)")[![kulbakin](https://avatars.githubusercontent.com/u/817433?v=4)](https://github.com/kulbakin "kulbakin (5 commits)")[![rhabkg](https://avatars.githubusercontent.com/u/146323538?v=4)](https://github.com/rhabkg "rhabkg (5 commits)")[![pauln](https://avatars.githubusercontent.com/u/574359?v=4)](https://github.com/pauln "pauln (4 commits)")[![lduer](https://avatars.githubusercontent.com/u/3307025?v=4)](https://github.com/lduer "lduer (1 commits)")

---

Tags

pdfTCPDFtcpditcpdi\_parser

### Embed Badge

![Health badge](/badges/luisaugustobraga-tcpdi/health.svg)

```
[![Health](https://phpackages.com/badges/luisaugustobraga-tcpdi/health.svg)](https://phpackages.com/packages/luisaugustobraga-tcpdi)
```

###  Alternatives

[elibyy/tcpdf-laravel

tcpdf support for Laravel 6, 7, 8, 9, 10, 11

3542.7M5](/packages/elibyy-tcpdf-laravel)[propa/tcpdi

TCPDI is a PHP class for importing PDF to use with TCPDF

231.1M1](/packages/propa-tcpdi)[bithost-gmbh/pdfviewhelpers

This is a TYPO3 CMS extension that provides various Fluid ViewHelpers to generate PDF documents.

45242.7k2](/packages/bithost-gmbh-pdfviewhelpers)[qipsius/tcpdf-bundle

A bundle to easily integrate TCPDF into Symfony

22709.1k](/packages/qipsius-tcpdf-bundle)[tarfin-labs/easy-pdf

Makes pdf processing easy.

1718.3k](/packages/tarfin-labs-easy-pdf)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
