setasign/fpdi-tcpdf
Lightweight bridge between FPDI and TCPDF that lets PHP developers import pages from existing PDF files directly into new TCPDF documents. Handy for merging files, adding stamps or watermarks, reordering pages, and assembling reports without rebuilding layouts from scratch.
Architecture fit
setasign/fpdi-tcpdf is a Composer metapackage: it ships no PHP source, no service provider, no config, no facade. Its entire payload is a composer.json that pins setasign/fpdi and tecnickcom/tcpdf to a mutually compatible version pair.setasign\Fpdi\Tcpdf\Fpdi), so in a modern tree this package is strictly redundant — Composer resolves the same constraint graph from the direct dependencies.barryvdh/laravel-dompdf, laravel-snappy, or a hand-rolled TCPDF service class. It has no Laravel coupling to evaluate.Integration feasibility
composer require with no configuration surface. There is nothing to wire into config/app.php or the container.Technical risk
Key questions
Stack fit Replace the metapackage with direct dependencies. The API surface is identical, so application code does not change.
| Concern | Abandoned metapackage | Recommended |
|---|---|---|
| Declared dependency | setasign/fpdi-tcpdf (frozen) |
setasign/fpdi: ^2.6 + tecnickcom/tcpdf: ^6.7 |
| Code source | none | same classes (setasign\Fpdi\Tcpdf\Fpdi) |
| Patch cadence | none | upstream releases |
| PHP 8.x | unverified | supported |
Migration path
grep for Fpdi, TCPDF, fpdi-tcpdf); confirm whether the metapackage is even referenced directly or only pulled transitively.setasign/fpdi-tcpdf from composer.json; add setasign/fpdi and tecnickcom/tcpdf at current stable constraints.composer update setasign/fpdi tecnickcom/tcpdf --with-dependencies; verify no other package depended on the metapackage's exact pins.composer audit.Compatibility
tmp write paths under the container user.Sequencing Treat as a low-effort, low-risk cleanup that should precede any new PDF feature work. Do the swap first, establish a golden-file regression suite over representative documents (structural assertions, not byte comparison), then build features on the upgraded baseline.
Maintenance Since the package is code-free, "maintaining" it is trivial — but it is also unfixable. The maintenance burden transfers entirely to the underlying libraries, which is exactly where you want it. Direct dependencies give you a normal patch cadence; the metapackage gives you none.
Support Community-only. No vendor SLA, no security advisories, no response to issues. Setasign sells commercial support for FPDI specifically; if PDF correctness is business-critical (invoices, contracts, regulatory filings), budget for it rather than relying on an archived wrapper.
Scaling
memory_limit before CPU becomes the constraint. Plan for 256–512 MB workers and enforce page/size caps.Failure modes
vendor or cache paths).Ramp-up Low. Any PHP developer can use the FPDI/TCPDF API within a day; the real learning curve is PDF-domain knowledge — coordinate systems, template design constraints, font embedding, and conformance requirements. Budget design time for templates, not for the library.
Recommendation: Do not adopt. Drop the metapackage and depend on setasign/fpdi and tecnickcom/tcpdf directly. The change is mechanical, removes an unmaintained dependency from the audit surface, and restores your ability to take security patches — which is the only durable value on offer here.
How can I help you explore Laravel packages today?