dskripchenko/php-pdf-fonts-liberation
Liberation font pack for PHP PDF libraries. Bundles the metric-compatible Liberation family, Sans, Serif and Mono, as drop-in replacements for Arial, Times New Roman and Courier New. Includes ready-made font definitions so documents render consistently across systems without licensing concerns.
Scope of this release. v1.1.1 is a documentation-only release. The changelog states explicitly that "the font bundle and the provider are unchanged," and the only edit is to READMEs across all languages. There is no API surface, configuration, asset, or service-provider change to assess. The substantive signal is semantic, not technical: the README now documents that php-pdf 1.10's ExistingFormFiller consumes this package automatically to render form values whose glyphs the form's own embedded fonts cannot represent.
Architecture fit. The package occupies a narrow, well-bounded slot: it ships a font bundle plus a Laravel service provider that registers those fonts with the consuming PDF stack. That is a textbook Laravel package shape — auto-discovered provider, no application-layer coupling, no runtime services, no database. It fits cleanly into a Laravel monolith or a queue worker that renders PDFs. The new documentation confirms the intended architectural role: this is an implicit fallback dependency for form-filling, not an optional cosmetic add-on.
Integration feasibility. Low effort. Standard Composer install with Laravel package discovery; expected to require no application code beyond version constraints. The only non-trivial step is ensuring font assets are actually present wherever rendering occurs (web nodes, queue workers, container images), which is a build/packaging concern rather than an application concern.
Technical risk.
composer why archaeology later.Key questions.
vendor:publish, a config path, or direct package-path reads? This determines deployment mechanics.Stack fit. Assumes a standard Laravel application (package auto-discovery available, PHP 8.x) with PDF rendering performed in-process or in queue workers. No fit concerns for conventional deployments; the package is asset- and config-only. Serverless and read-only-filesystem environments need explicit verification that fonts are read from a path present at runtime rather than a path that must be writable.
Migration path. Greenfield: composer require the package, confirm discovery, and add a form-filling smoke test to CI. Brownfield on php-pdf <1.10: upgrade php-pdf to 1.10 first, then add this package, then re-baseline any PDF snapshot or golden-file tests, since rendered output for previously-unrenderable values will legitimately change. There is no data migration and no state to backfill.
Compatibility. Two axes to pin: this package against php-pdf 1.10+, and both against the framework/PHP version in use. Record the pair (this package version, php-pdf version) in the dependency policy and verify the pair in CI rather than testing each in isolation. Because the provider and bundle are unchanged in v1.1.1, upgrade from v1.1.0 is a no-op at runtime and safe to take at any cadence.
Sequencing.
ExistingFormFiller is on a code path the product actually uses.Maintenance. Very low steady state. Font bundles change rarely, and v1.1.1 itself requires no action — the code is identical to the prior release, so upgrading is cosmetic unless documentation is used to drive onboarding. The recurring cost is process, not code: re-running the font license audit and re-checking glyph coverage whenever the bundle changes.
Support. Mixed. Package-level support is straightforward; incident-level support is the concern. A ticket that reads "some characters are wrong in the PDF" now spans three candidates — the application's text handling, php-pdf's form filler, and this font bundle — and the failure is visually subtle. Tier-1 will need a decision tree: is the value ASCII/Latin, does the form define its own fonts, is the package installed on the worker that rendered the file, does the output show tofu. Budget a short triage guide so this does not escalate straight to engineering.
Scaling. Effectively free. Fonts are static assets read from disk; there is no network hop, no external service, and no per-request write. Vertical impact is limited to slightly larger container images and marginally more memory if fonts are loaded per render. Horizontal scaling only requires that every instance type — including autoscaled workers and any ephemeral build step — carries the same font assets; asymmetry across instance types produces intermittent, hard-to-reproduce rendering differences.
Failure modes.
.dockerignore or deploy excludes package paths). Symptom: silent tofu.Ramp-up. Roughly half a day for an engineer already familiar with the PDF pipeline: install, discovery, asset placement, run the form corpus, done. The real ramp-up is organizational — one owner must hold both the font/licensing question and the glyph-coverage boundary, and the PDF pipeline runbook must state explicitly that this package is auto-invoked by php-pdf 1.10 for fallback form values. Without that note, the next person to debug a rendering issue will start in the wrong repository.
How can I help you explore Laravel packages today?