THotPDF.AnalyzeLoadedSignatureRevisions Method
Classifies every incremental revision after a selected signature and evaluates the aggregate changes against DocMDP and FieldMDP
Declarations
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
Source: TStream;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
Unit
HPDFDoc
Parameters
| Name | Purpose |
|---|---|
SigIndex | Zero-based index of the loaded signature field |
Source | Caller-owned stream containing the exact bytes of the loaded PDF |
Analysis | Receives revision, object, field, permission, compliance, and diagnostic details |
Change kinds
THPDFRevisionChangeKinds independently records long-term-validation maintenance, form filling, signing, annotation create/delete/modify, embedded-file create/delete/modify, page-template instantiation, and unrecognised changes
The kind set preserves operation detail that a single ordered modification level cannot express and drives UR/UR3 permission matching
Return value
Returns True when the signature byte range and revision chain were analysed, otherwise returns False and reports the reason in Analysis.Issue
Modification levels
THPDFRevisionModificationLevel orders semantic changes from least to most restrictive
| Value | Meaning |
|---|---|
rmlNone | No post-signature object changes |
rmlLongTermValidation | DSS, VRI, certificate, revocation, extension, or document-timestamp maintenance |
rmlFormFillAndSign | Form values, widget appearances, or signature structures |
rmlAnnotations | Annotation objects or page annotation linkage |
rmlOther | Unrecognised, unreadable, freed, or otherwise disallowed objects |
Result details
THPDFSignatureRevisionAnalysis contains a THPDFSignatureRevisionChangeArray of THPDFSignatureRevisionChange records
SignedRevisionLength,TotalRevisionCount, andSignedRevisionIndexidentify the signed snapshot within the chronological revision chainRevisionsreports each later xref offset, semantic level, changed and freed object numbers, changed field names, and any conservative-classification issuePermissionscontains the same structural DocMDP and FieldMDP information returned byDocMDPCompliantandFieldMDPCompliantreport the independent policy decisions, whilstURCompliant, andIdentityCompliantreport independent decisions, whileTransformCompliantcombines all transform methods with structural validityPolicyCompliantcombines them with structural validity
Usage notes
- The file-backed overload opens the source file used by
LoadFromFile; use the stream overload afterLoadFromStream - The stream position is restored before the method returns
- Traditional xref tables, xref streams, hybrid references, incremental
/Prevchains, and compressed object-stream members are supported - Unknown, unreadable, or freed objects are classified as
rmlOtherso policy checks fail safely - This method evaluates revision semantics and permissions but does not replace cryptographic signature verification
rmlOtherso policy checks fail safely - This method evaluates revision semantics and permissions but does not replace cryptographic signature verification
- SaveIncrementalUpdateAuthenticated combines this analysis with signature authentication and atomic publication