function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR combines a raw-file inspection with a live PDFium page-object pass for ISO 23504-1:2020
%PDF-raster-x.y marker, permitted headers, object-stream prohibition, catalog and Info dictionary white lists, XMP metadata, required dates, and trailer /ID/V and /R profiles when encrypted-profile enforcement is enabledTPdfRValidationOptions.Default checks 72 through 2400 DPI, permits 0.5 point geometry tolerance, requires a full-page strip, and enforces the encrypted PDF 2.0 profile
The result is a TPdfRValidationResult record:
prc1 (PDF/R-1 marker found), prcNone (no marker), or prcUnknown (parse failed or document inactive).TPdfRValidationIssues set covering file markers, metadata, encryption profile, raster-only content, geometry, colour, resolution, and compression parametersConformance is a real PDF/R level and Issues is emptyThe method is read-only and restores the caller's active page after validation
ValidatePdfR on an inactive document returns prcUnknown with an empty issue set
uses System.TypInfo;
var
Outcome: TPdfRValidationResult;
Issue: TPdfRValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\scan.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfR;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfRConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfRValidationIssue), Ord(Issue)));
end;