Skip to content

v0.1.0 - Explicit PDF object model

Choose a tag to compare

@roukmoute roukmoute released this 13 Oct 03:00
· 128 commits to master since this release

Première version publique du modèle objet explicite de PDF 1.7 / ISO 32000-1:2008, pour PHP 8.5.

Ce qui est disponible

  • Valeurs, entrées, références et définitions PDF composées d'objets, avec une identité propre à chaque document et aucun singleton global.
  • Écriture de PDF classiques et compressés : longueurs et offsets en octets, tables et flux de références croisées, flux d'objets.
  • Opérateurs de contenu typés, arbres de pages, ressources, polices standard, métadonnées, destinations, plans et arbres de noms/nombres.
  • Les quatre représentations de fonction PDF.
  • 263 dictionnaires, 1 405 classes d'entrée et un catalogue traçable de la référence, avec génération reproductible.

Validation

147 tests et 7 189 assertions, PHPStan niveau 8, PSR-12 et lecture indépendante des exemples. La CI vérifie aussi les fichiers produits avec qpdf.

Installation

PHP 8.5 avec ctype, iconv et zlib est nécessaire. Le tag est v0.1.0.

composer config repositories.roukmoute-pdf vcs https://github.com/roukmoute/pdf
composer require roukmoute/pdf:^0.1

Périmètre de cette première version

L'API peut évoluer avant 1.0 et remplace le prototype PHP 7.4. La bibliothèque vise la construction du format objet par objet, sans API de mise en page.

La conformité PDF complète n'est pas revendiquée : chiffrement, signatures, sous-ensembles de polices, certains codecs, mises à jour incrémentales, linéarisation et contraintes sémantiques supplémentaires restent à implémenter. Les définitions de dictionnaires ne remplacent pas ces traitements.

Architecture · Couverture détaillée · Changelog