Repository navigation
v0.5.0
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.