PDFium Delphi Component Docs

ValidatePdfUa Metodo

Componente: TPdf  ·  Unità: PDFium
Esamina il documento corrente rispetto alla conformità PDF/UA-1 o PDF/UA-2 e restituisce problemi specifici del profilo

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Description

ValidatePdfUa rileva PDF/UA-1 e PDF/UA-2 da XMP e applica le regole del profilo selezionato

Il risultato è un record TPdfUaValidationResult:

La validazione PDF/UA-2 richiede inoltre un pdfuaid:rev a quattro cifre, PDF 2.0 effettivo, l'ordinamento delle tab delle annotazioni A/W/S, nessuna XFA, nomi di configurazione optional content non vuoti, nessuna annotazione Sound o Movie deprecata in PDF 2.0 e tipi di struttura delle intestazioni H1 fino a Hn esplicitamente numerati

Dalla v3.73.0 l'insieme dei problemi può anche contenere pvuaiNaturalLanguageUncovered quando il testo di pagina non Artifact o una stringa Title, Alt, ActualText o Expansion di struttura è priva di una dichiarazione /Lang effettiva valida

Dalla v3.74.0 l'insieme dei problemi può anche contenere pvuaiArtifactInStructureTree quando un oggetto di pagina Artifact porta un MCID rivendicato dal structure tree della pagina, inclusi gli artifact di paginazione basati su path

Dalla v3.75.0 i problemi di mappatura Unicode provengono da un unico passaggio con ambito oggetto InspectPdfUaUnicodeCoverage; un ActualText valido copre solo i caratteri provenienti dal suo oggetto testo di origine, mentre i caratteri Artifact e generati da PDFium sono esclusi dalla copertura semantica

ValidatePdfUa è un'ispezione in sola lettura — non modifica il documento e può essere chiamato ripetutamente in sicurezza. Usarlo prima di consegnare un PDF a un sistema di archiviazione o a un verificatore di accessibilità per evidenziare al gestore la non conformità. Per il comune controllo "è un PDF/UA-1?" che non richiede l'elenco dei problemi, preferire la proprietà più leggera 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