zendframework/zendpdf
ZendPdf is a PHP library for creating and manipulating PDF documents. It supports drawing text, images, and shapes, page management, and importing existing PDFs. Originally part of Zend Framework, it is a legacy component and no longer actively maintained.
Zend\Pdf is a discrete, well-bounded migration unit — useful for sizing a "framework exit" epic rather than an open-ended rewrite.Consider it only in narrow, continuity-driven cases:
Zend\Pdf in production and need a behavioral reference to validate a replacement renders the same output (byte-for-byte or visually).Look elsewhere if any of the following is true:
Bottom line: this is a liability to contain, not a capability to adopt. zendframework/zendpdf is an archived component of Zend Framework 2 with ~85 GitHub stars, no maintainer, no security response process, and an unverified source repository. It works, and it may already be embedded in our document pipeline — but nothing new should be built on it.
For executives: The risk is not that PDFs stop rendering tomorrow; it's that a defect or vulnerability is found and no one is obligated to fix it. That risk is cheap to retire now and expensive to discover during an audit, a compliance review, or an incident. Recommend: no new features committed to this dependency, a named owner, and a time-boxed migration to a maintained renderer. Comparable migrations of a single document type are typically measured in weeks of one engineer's time, not quarters — and that estimate should be confirmed by a short spike before it enters the roadmap.
For engineering: Treat it as frozen. Pin the exact version, wrap every call behind a thin internal interface (e.g. DocumentRenderer), and forbid direct usage in new code. That interface is the migration seam — swap the implementation to dompdf, mPDF, or Browsershot without touching feature code. Add the dependency to the risk register with the archived date and the absence of a security contact.
For product: Budget the replacement as risk-reduction work, not as a feature. It competes with roadmap items on the strength of the compliance and reliability exposure it removes — so scope it to the documents that actually matter (invoices, statements, regulated outputs) and let low-value PDF exports ride on the frozen version until they're retired. Where an export could be CSV or on-screen HTML instead of a PDF, deleting the dependency is the cheapest migration available.
How can I help you explore Laravel packages today?