Skip to content

v1.0.0 - first stable release

Choose a tag to compare

@dragonofmercy dragonofmercy released this 29 May 08:13
· 543 commits to main since this release

First stable release of phppdf - a modern, pure-PHP 8.4 PDF generation library with no runtime dependencies beyond mbstring, openssl, and zlib.

The public API is now frozen under semantic versioning: breaking changes are reserved for a future major version.

Highlights

  • Documents - standard and custom page sizes, multi-page, metadata, RC4 40/128-bit + AES-128 encryption, viewer preferences. Millimetres or PDF points.
  • Graphics & text - lines, rects, circles, paths, transforms, the 12 standard fonts, and custom TrueType/OpenType fonts with automatic glyph subsetting (TTF + CFF). Cells with borders, alignment, wrap, and fit modes.
  • Images - JPEG and PNG (incl. alpha) with per-document embed caching.
  • SVG - shapes, paths (arcs included), gradients (linear/radial, per-stop alpha, spread methods), patterns, symbols/markers, clipPath, luminance masks, <style> CSS, embedded raster images, and selectable <text>.
  • Barcodes - 1D (EAN-13/8, Code 128, UPC-A, Code 39/93, ITF) with orientation and module-driven auto-width, and the four 2D families: QR, Aztec, DataMatrix, PDF417 (auto UTF-8 ECI). Plus standalone SVG export for the 2D matrix formats.
  • Navigation & forms - bookmarks, hyperlinks, full interactive forms (text/checkbox/radio/combo/listbox/buttons), JavaScript actions, and real PKCS#7/CMS digital signatures via Document::sign().

Quality

  • PHPStan at level max, zero suppressions.
  • Byte-identity golden tests with paired qpdf --check.
  • Barcodes cross-validated against zxing-cpp and libdmtx; SVG validated by rendering with pdfium.
composer require dragonofmercy/phppdf

See CHANGELOG.md for the full list.