function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR сочетает исследование необработанного файла с проходом по объектам страниц живого PDFium для ISO 23504-1:2020
%PDF-raster-x.y, допустимые заголовки, запрет потоков объектов, белые списки каталога и словаря Info, метаданные XMP, обязательные даты и /ID трейлера/V и /R, когда включено требование зашифрованного профиляTPdfRValidationOptions.Default проверяет диапазон от 72 до 2400 DPI, допускает геометрический допуск 0,5 пункта, требует полосу на всю страницу и требует профиль зашифрованного PDF 2.0
Результат — запись TPdfRValidationResult:
prc1 (маркер PDF/R-1 найден), prcNone (маркера нет) или prcUnknown (разбор не удался либо документ неактивен)TPdfRValidationIssues, покрывающий маркеры файла, метаданные, профиль шифрования, чисто растровое содержимое, геометрию, цвет, разрешение и параметры сжатияConformance является реальным уровнем PDF/R, а Issues пустМетод работает только на чтение и после проверки восстанавливает активную страницу вызывающего кода
ValidatePdfR на неактивном документе возвращает prcUnknown с пустым набором проблем
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;