function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR łączy inspekcję surowego pliku z przebiegiem po obiektach stron działającego PDFium dla ISO 23504-1:2020
%PDF-raster-x.y, dozwolone nagłówki, zakaz strumieni obiektów, białe listy słowników katalogu i Info, metadane XMP, wymagane daty oraz /ID w trailerze/V i /R, gdy wymuszanie profilu szyfrowania jest włączoneTPdfRValidationOptions.Default sprawdza zakres od 72 do 2400 DPI, dopuszcza tolerancję geometrii 0.5 punkta, wymaga pasa na całą stronę i wymusza profil zaszyfrowanego PDF 2.0
Wynikiem jest rekord TPdfRValidationResult:
prc1 (znaleziono znacznik PDF/R-1), prcNone (brak znacznika) lub prcUnknown (parsowanie nie powiodło się albo dokument nieaktywny)TPdfRValidationIssues obejmujący znaczniki pliku, metadane, profil szyfrowania, zawartość wyłącznie rastrową, geometrię, kolor, rozdzielczość i parametry kompresjiConformance jest rzeczywistym poziomem PDF/R, a Issues jest pustyMetoda jest tylko do odczytu i po walidacji przywraca pierwotnie aktywną stronę
ValidatePdfR na nieaktywnym dokumencie zwraca prcUnknown z pustym zbiorem problemów
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;