Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Fpdi Tcpdf Laravel Package

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.

Deep Wiki
Context7

Product Decisions This Supports

  • Capability vs. package: separate the two. The underlying capability — importing an existing PDF as a template and overlaying dynamic data (invoices, packing slips, government/insurance forms, tax documents, certificate templates) — is a legitimate product requirement. This package is not the way to deliver it. Treat any decision here as a dependency selection decision, not a feature decision.
  • Build vs. buy, resolved toward "buy the libraries, not the wrapper." The setasign/fpdi-tcpdf package is a Composer metapackage: it contains no meaningful code of its own, it only pins compatible versions of FPDI and TCPDF. There is no product value in the wrapper; the value is entirely in the two libraries it points at.
  • Roadmap implication: a migration ticket, not a feature ticket. If this is already in the codebase, the decision it drives is "schedule removal" — replace the metapackage with explicit setasign/fpdi and tecnickcom/tcpdf requirements at maintained versions. Budget it as dependency hygiene, not as a project.
  • Procurement and security review input. Marked ABANDONED and archived, last release February 2020. That is a hard blocker in most vendor security questionnaires, SOC 2 evidence packs, and internal dependency-health gates. It should be flagged in any due-diligence or compliance review that touches the PDF pipeline, even if the transitive code is fine.
  • Signals for the build-vs-buy conversation on PDF generation generally. If the team is already generating PDFs, evaluate whether TCPDF is still the right engine at all (see below) rather than silently inheriting it via a stale metapackage. This package's abandonment is a good forcing function to re-examine the whole PDF stack.
  • Portfolio-level dependency inventory. 62 stars and an archived repo means effectively zero community support and no upstream fixes. Any product area depending on it carries unowned risk that should appear on a risk register, not on a roadmap.

When to Consider This Package

Effectively never for new work. Criteria under which it would be defensible are narrow and shrinking:

  • You are reproducing a legacy environment byte-for-byte and need the exact historical version pin for a migration or reproduction task — a one-off forensic exercise, not a permanent dependency.
  • You are auditing an existing application and need to understand why the pin exists before removing it (i.e., confirming which FPDI/TCPDF versions were locked and whether anything relies on that specific pairing).

Look elsewhere — and specifically at direct dependencies — when:

  • You need PDF template import and overlay in a new or actively maintained product. Require setasign\Fpdi and a PDF engine directly; FPDI's TCPDF integration is available without this metapackage, so the wrapper adds nothing but a stale constraint.
  • You need modern PHP support. A 2020 pin will not track PHP 8.x/8.3+ compatibility, and abandoned constraints are a common cause of "we can't upgrade the runtime" blockers.
  • You need active security patching, CVE response, or a supported upgrade path. Archived repositories provide none.
  • You are evaluating the PDF engine itself. TCPDF is mature but slow and no longer the default recommendation for new builds; HTML-to-PDF approaches or other maintained engines usually win on developer velocity and layout fidelity. Do that evaluation as its own decision rather than inheriting TCPDF by accident.
  • Your dependency policy forbids abandoned packages. This one fails that policy outright.

How to Pitch It (Stakeholders)

For executives: The package we found is not a PDF library — it is a thin pointer that says "use these exact versions of two other libraries," and it was abandoned and archived in 2020. It gives us no capability we don't already get from its two real dependencies, and it actively works against us: it blocks PHP upgrades, fails security and vendor due-diligence checks, and has no one maintaining it. The recommendation is not to adopt it and, if it is already in our stack, to remove it in a small, low-risk dependency cleanup.

For engineering: This is setasign/fpdi-tcpdf, a Composer metapackage that pins FPDI and TCPDF. No code of substance, MIT licensed, last tagged release 2020-02-19, repository archived. Delete the requirement and declare setasign/fpdi and tecnickcom/tcpdf (or a replacement engine) explicitly at versions we choose and can patch. Verify FPDI's TCPDF integration still resolves the class path we use, run the PDF generation test suite, and confirm output parity on a representative sample of templates before and after. While we're in there, raise a separate spike on whether TCPDF is still the right engine — that is a different decision and should not be bundled into the cleanup.

One-line summary: Abandoned wrapper around two living libraries — zero capability, non-trivial risk, trivially removable. Decline adoption; schedule removal if present.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package