function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR kombiniert eine Rohdatei-Prüfung mit einem PDFium-Seitenobjekt-Durchlauf für ISO 23504-1:2020
%PDF-raster-x.y-Marker, zulässige Header, das Verbot von Object-Streams, White Lists für Catalog- und Info-Dictionary, XMP-Metadaten, erforderliche Datumsangaben und Trailer-/ID/V- und /R-Profilen, wenn die Durchsetzung verschlüsselter Profile aktiviert istTPdfRValidationOptions.Default prüft 72 bis 2400 DPI, erlaubt eine geometrische Toleranz von 0.5 Punkt, verlangt einen seitenfüllenden Streifen und erzwingt das verschlüsselte PDF-2.0-Profil
Das Ergebnis ist ein TPdfRValidationResult-Record:
prc1 (PDF/R-1-Marker gefunden), prcNone (kein Marker) oder prcUnknown (Parsen fehlgeschlagen oder Dokument inaktiv)TPdfRValidationIssues-Menge, die Dateimarker, Metadaten, Verschlüsselungsprofil, reinen Rasterinhalt, Geometrie, Farbe, Auflösung und Komprimierungsparameter abdecktConformance eine echte PDF/R-Stufe ist und Issues leer istDie Methode ist rein lesend und stellt nach der Validierung die aktive Seite des Aufrufers wieder her
ValidatePdfR bei einem inaktiven Dokument liefert prcUnknown mit einer leeren Problemmenge
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;