Skip to content

v0.5.0

Choose a tag to compare

@roukmoute roukmoute released this 13 Oct 21:33
· 21 commits to master since this release

Native object histories and signature-field policies

Core 0.5.0 adds executable PDF-native construction for object deletion/reuse,
navigation, embedded files, portable collections and signature-field policies.
PHP 8.3 remains the minimum version; PHP 8.3, 8.4 and 8.5 are validated.

  • Preserve the exact emitted dictionaries, reference identities and encoded
    pre-encryption stream bytes in immutable revision histories. Append revisions
    after initial linearization without changing the original prefix or hint ranges.
  • Release indirect objects and reuse their numbers with the correct generations,
    linked free lists and restrictions on object-stream membership.
  • Construct page labels, destination modes and viewport calculations, article
    rings, transitions and presentation sequences against the effective page graph.
  • Construct supplied embedded-file bytes and derived Size/MD5 metadata, EF/RF/CI
    relations, attachment name trees and typed collection schemas/items/sorts.
  • Apply actual written signature seeds, field locks, certificate and digest
    choices, appearances and evidence requirements. Verify the cryptographic output
    before filling Contents and retain historical signing restrictions.
  • Add four explained tutorials with generated PDFs and permanent independent
    oracles. Fix direct versus historical indirect graph traversal and external
    stream declarations across retired generations.

The optional reader, image and font packages are released as 0.1.3 and accept
core series 0.2–0.5. They remain development-only dependencies of this repository;
installing the core alone adds no optional package.

Validation: 1,426 tests / 15,342 assertions on each supported PHP version,
PHPStan level 8, style and reproducible source generation checks, plus independent
qpdf/pypdf, cryptographic and rendering checks for the declared mechanisms.

All dictionary tables from the two retained references are modeled. This release
does not claim complete semantic conformance. Full authenticated DocMDP,
FieldMDP and UR revision-difference analysis and remaining annotation, measurement,
media, function and barcode procedures remain tracked. Parsing/conversion,
rendering, XFA/JavaScript/media execution, timestamp/revocation acquisition and
certificate trust require explicit external components.

See the changelog,
0.5 API guide,
source-linked coverage
and tutorials with PDF previews.