PDFium Component Docs

ValidatePdfUa methode

Component: TPdf  ·  Unit: PDFium
Inspecteert het huidige document op PDF/UA-1- of PDF/UA-2-conformiteit en geeft profielspecifieke problemen terug

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Description

ValidatePdfUa detecteert PDF/UA-1 en PDF/UA-2 via XMP en past de regels van het geselecteerde profiel toe

Het resultaat is een TPdfUaValidationResult-record:

PDF/UA-2-validatie vereist bovendien een viercijferige pdfuaid:rev, effectief PDF 2.0, A/W/S-annotatietabvolgorde, geen XFA, niet-lege namen in optional-content-configuraties, geen door PDF 2.0 afgeschafte Sound- of Movie-annotaties en expliciet genummerde structuurtypen H1 tot en met Hn voor de koppenstructuur

Sinds v3.73.0 kan de verzameling problemen ook pvuaiNaturalLanguageUncovered bevatten wanneer niet-Artifact-paginatekst of een structuur-Title-, Alt-, ActualText- of Expansion-string geen geldige effectieve /Lang-declaratie heeft

Sinds v3.74.0 kan de verzameling problemen ook pvuaiArtifactInStructureTree bevatten wanneer een Artifact-paginaobject een MCID draagt die door de structuurboom van de pagina wordt geclaimd, inclusief padgebaseerde pagineringsartifacts

Sinds v3.75.0 komen de Unicode-mappingproblemen uit één object-scoped InspectPdfUaUnicodeCoverage-pass; geldige ActualText dekt alleen characters uit het tekstobject waaruit hij afkomstig is, terwijl Artifact- en door PDFium gegenereerde characters buiten semantische dekking blijven

ValidatePdfUa is een alleen-lezen inspectie — het document wordt niet gewijzigd en herhaalde aanroepen zijn veilig. Gebruik het voordat een PDF naar een archiefsysteem of toegankelijkheidschecker gaat om niet-conformiteit aan de beheerder te tonen. Voor de gebruikelijke check "is dit PDF/UA-1?" die de problemenlijst niet nodig heeft, verdient de lichtere eigenschap PdfUaConformance de voorkeur

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