PDFium Delphi Component Docs

ValidatePdfUa Método

Componente: TPdf  ·  Unidad: PDFium
Inspecciona el documento actual en busca de conformidad PDF/UA-1 o PDF/UA-2 y devuelve problemas específicos del perfil

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Description

ValidatePdfUa detecta PDF/UA-1 y PDF/UA-2 a partir de XMP y aplica las reglas del perfil seleccionado

El resultado es un registro TPdfUaValidationResult:

La validación de PDF/UA-2 exige además un pdfuaid:rev de cuatro dígitos, PDF 2.0 efectivo, ordenación de pestañas de anotaciones A/W/S, ausencia de XFA, nombres de configuración de contenido opcional no vacíos, ausencia de anotaciones Sound o Movie en desuso por PDF 2.0, y tipos de estructura de encabezados H1 a Hn numerados explícitamente

Desde v3.73.0 el conjunto de problemas también puede contener pvuaiNaturalLanguageUncovered cuando el texto de página no Artifact o una cadena de estructura Title, Alt, ActualText o Expansion carece de una declaración /Lang efectiva válida

Desde v3.74.0 el conjunto de problemas también puede contener pvuaiArtifactInStructureTree cuando un objeto de página Artifact lleva un MCID reclamado por el árbol de estructura de la página, incluidos los artefactos de paginación basados en trazados

Desde v3.75.0 los problemas de mapeo Unicode provienen de una única pasada InspectPdfUaUnicodeCoverage con ámbito de objeto; un ActualText válido cubre solo los caracteres de su objeto de texto de origen, mientras que los caracteres Artifact y generados por PDFium quedan excluidos de la cobertura semántica

ValidatePdfUa es una inspección de solo lectura — no modifica el documento y es seguro llamarla repetidamente. Úsela antes de entregar un PDF a un sistema de archivo o a un verificador de accesibilidad para hacer visibles las no conformidades al operador. Para la comprobación común de "¿es este PDF/UA-1?" que no necesita la lista de problemas, prefiera la propiedad más ligera PdfUaConformance

Remarks

Example

uses System.TypInfo;

var
  Outcome: TPdfUaValidationResult;
  Issue: TPdfUaValidationIssue;
begin
  Pdf1.FileName := 'C:\Incoming\report.pdf';
  Pdf1.Active := True;
  Outcome := Pdf1.ValidatePdfUa;
  Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfUaConformance),
    Ord(Outcome.Conformance)));
  for Issue in Outcome.Issues do
    Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfUaValidationIssue), Ord(Issue)));
end;

See Also

PdfUaConformance, SaveAsPdfUa, SaveAsPdfUaToStream, IsTagged, ValidatePdfA