Skip to content

v1.8.0

Choose a tag to compare

@dragonofmercy dragonofmercy released this 11 Jun 11:19
· 89 commits to main since this release

Added

  • Read existing PDFs - PdfReader parses any non-encrypted PDF (classic xref tables and cross-reference streams, object streams, the standard stream filters), with lazy object resolution and page-tree access.
  • Template import - Document::importPdf() / importPdfBytes() plus Page::template() draw any page of an existing PDF as an opaque background or stamp (letterheads, overlays, watermarking); works with encryption, tagging, and signatures.
  • Modify existing PDFs - PdfEditor::open() / PdfEditor::fromBytes() write changes as an appended incremental revision that leaves the original bytes (and any signatures) intact: refresh metadata and append new pages with the full page API, on both classic xref and cross-reference-stream sources.
  • Fill AcroForm fields - inspect a form with formFields() / field(), then fill text, checkbox, radio, combobox, and listbox fields with setField(); each filled field receives a generated /AP appearance stream.
  • Sign existing PDFs - PdfEditor::open()->sign() with full parity to Document: sign(), addSignature(), addDocumentTimestamp(), and enableLtv(), RFC 3161 timestamps, the PAdES profiles (B-B / B-T / B-LT / B-LTA), and LTV/DSS, each a stacked incremental revision covering all prior edits. Reuses an empty signature field by name or creates one - invisible by default, or visible with a Helvetica caption via SignatureAppearance.