You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.