PDFium Delphi Component Docs

ValidatePdfUa Methode

Komponente: TPdf  ·  Unit: PDFium
Prüft das aktuelle Dokument auf PDF/UA-1- oder PDF/UA-2-Konformität und liefert profilspezifische Probleme

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Beschreibung

ValidatePdfUa erkennt PDF/UA-1 und PDF/UA-2 über XMP und wendet die Regeln des erkannten Profils an

Das Ergebnis ist ein TPdfUaValidationResult-Record:

Die PDF/UA-2-Validierung verlangt zusätzlich eine vierstellige pdfuaid:rev, effektives PDF 2.0, eine A/W/S-Tabulatorordnung für Anmerkungen, kein XFA, nicht leere Optional-Content-Konfigurationsnamen, keine in PDF 2.0 abgekündigten Sound- oder Movie-Anmerkungen sowie explizit nummerierte H1 bis Hn als Überschriften-Strukturtypen

Seit v3.73.0 kann die Problemmenge zusätzlich pvuaiNaturalLanguageUncovered enthalten, wenn Nicht-Artifact-Seitentext oder ein Struktur-Title-, Alt-, ActualText- oder Expansion-String keine gültige effektive /Lang-Deklaration hat

Seit v3.74.0 kann die Problemmenge zusätzlich pvuaiArtifactInStructureTree enthalten, wenn ein Artifact-Seitenobjekt eine MCID trägt, die vom Seitenstrukturbaum beansprucht wird, einschließlich pfadbasierter Paginierungs-Artefakte

Seit v3.75.0 stammen die Unicode-Zuordnungsprobleme aus einem einzigen objektbezogenen InspectPdfUaUnicodeCoverage-Durchlauf; gültiges ActualText deckt nur Zeichen aus seinem ursprünglichen Textobjekt ab, während Artifact- und PDFium-generierte Zeichen von der semantischen Abdeckung ausgeschlossen sind

ValidatePdfUa ist eine rein lesende Prüfung — sie verändert das Dokument nicht und kann gefahrlos wiederholt aufgerufen werden. Setzen Sie sie ein, bevor ein PDF an ein Archivsystem oder einen Barrierefreiheits-Prüfer übergeben wird, um dem Bediener Konformitätsverstöße offenzulegen. Für die häufige Prüfung „Ist das PDF/UA-1?“, die keine Problemliste benötigt, ziehen Sie die schlankere Eigenschaft PdfUaConformance vor

Hinweise

Beispiel

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;

Siehe auch

PdfUaConformance, SaveAsPdfUa, SaveAsPdfUaToStream, IsTagged, ValidatePdfA