function ValidatePdfR: TPdfRValidationResult; overload;
function ValidatePdfR(const Options: TPdfRValidationOptions): TPdfRValidationResult; overload;
ValidatePdfR combina una inspección del archivo sin procesar con una pasada en vivo de objetos de página de PDFium para ISO 23504-1:2020
%PDF-raster-x.y, los encabezados permitidos, la prohibición de flujos de objetos, las listas blancas de los diccionarios catálogo e Info, los metadatos XMP, las fechas requeridas y el /ID del trailer/V y /R soportados cuando la aplicación del perfil cifrado está habilitadaTPdfRValidationOptions.Default comprueba de 72 a 2400 DPI, permite una tolerancia geométrica de 0.5 puntos, requiere una franja de página completa y aplica el perfil cifrado PDF 2.0
El resultado es un registro TPdfRValidationResult:
prc1 (marcador PDF/R-1 encontrado), prcNone (sin marcador) o prcUnknown (falló el análisis o el documento está inactivo)TPdfRValidationIssues que cubre marcadores de archivo, metadatos, perfil de cifrado, contenido solo raster, geometría, color, resolución y parámetros de compresiónConformance es un nivel real de PDF/R y Issues está vacíoEl método es de solo lectura y restaura la página activa del llamador después de la validación
ValidatePdfR sobre un documento inactivo devuelve prcUnknown con un conjunto de problemas vacío
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;