function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR combina uma inspeção do arquivo bruto com uma passagem ao vivo de objetos de página do PDFium para a ISO 23504-1:2020
%PDF-raster-x.y, cabeçalhos permitidos, proibição de object-stream, listas brancas dos dicionários catálogo e Info, metadados XMP, datas exigidas e /ID do trailer/V e /R suportados quando a imposição de perfil criptografado está habilitadaTPdfRValidationOptions.Default verifica de 72 a 2400 DPI, admite uma tolerância de geometria de 0.5 ponto, exige um strip de página completa e impõe o perfil criptografado do PDF 2.0
O resultado é um record TPdfRValidationResult:
prc1 (marcador PDF/R-1 encontrado), prcNone (nenhum marcador) ou prcUnknown (a análise falhou ou o documento está inativo)TPdfRValidationIssues cobrindo marcadores de arquivo, metadados, perfil de criptografia, conteúdo somente raster, geometria, cor, resolução e parâmetros de compressãoConformance é um nível PDF/R real e Issues está vazioO método é somente leitura e restaura a página ativa do chamador após a validação
ValidatePdfR em um documento inativo retorna prcUnknown com um conjunto de problemas vazio
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;