THotPDF.ValidatePDFUA2Structure-Methode
Führt eine begrenzte PDF/UA-2-Strukturvalidierung über einen erzeugten oder geladenen Objektgraphen aus und liefert stabile strukturierte Diagnostik, ohne das Dokument zu verändern
Deklaration
function ValidatePDFUA2Structure(
const Options: THPDFUA2ValidationOptions;
out Issues: THPDFUA2ValidationIssues): boolean; overload;
function ValidatePDFUA2Structure(
const Options: THPDFUA2ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
Einheit
HPDFDoc
Validierungsoptionen
Verwenden Sie THPDFUA2ValidationOptions.Default für die strikte Generierungsvalidierung oder passen Sie einzelne semantische Policies für die Eingangsdiagnostik an
| Feld | Zweck |
|---|---|
HeadingPolicy | Ignoriert, diagnostiziert oder verwirft übersprungene Überschriftenebenen |
AllowDocumentFragmentHeadingStarts | Setzt den Überschriftenkontext innerhalb von DocumentFragment zurück |
CheckDocumentSemantics | Prüft Catalog-Sprache, Metadaten, angezeigten Titel, Optional Content und eingebettete Dateien |
CheckHumanReadableStrings | Verwirft Unicode-Private-Use-Zeichen in menschenlesbaren Strings |
CheckAnnotationSemantics | Prüft Seiten-Tab-Reihenfolge, Annotationszugehörigkeit, Rollen, Flags, Beschreibungen und Appearance-Streams |
CheckFormSemantics | Prüft AcroForm-Felder, Widgets, Labels, Actions, Optionen und Rich Values |
CheckNavigationSemantics | Prüft Strukturziele, Outlines und verschachtelte Page-Label-Number-Trees |
RequireListLabels | Verlangt ein Lbl für jedes nummerierte Listenelement |
RequireExplicitTableHeaderAssociations | Meldet Datenzellen, die allein auf Scope-Inferenz beruhen |
CheckListSemantics | Prüft Nummerierung, Fortsetzungsketten, Captions, Labels, Bodies und die direkte Platzierung echten Inhalts |
CheckTableSemantics | Prüft begrenzte Grid-Geometrie, Zeilengruppen, Spans, Scopes und tabellenlokale Header-Zuordnungen |
CheckRubyWarichuSequences | Prüft die exakten direkten Kindsequenzen, die Ruby und Warichu verlangen |
CheckPronunciationHints | Prüft Aussprache-Eintragstypen und indirekt eingebettete PLS-Lexika |
RequireStructureAssociatedFiles | Verlangt, dass jede Catalog-Associated-File von der Struktur aus erreichbar ist |
RequireFormulaTextAlternative | Verlangt Alt, ActualText oder zugeordnetes MathML für Formeln |
MaxObjects | Begrenzt das Scannen indirekter Objekte, standardmäßig 1.000.000 Objekte |
MaxIssues | Begrenzt vorgehaltene Diagnostik, standardmäßig 256 Issues |
Rückgabewert
Liefert nur dann True, wenn keine uisError-Diagnostik verbleibt
Diagnostik
THPDFUA2IssueSeverity unterscheidet Warnungen und Fehler, während jedes THPDFUA2ValidationIssue im THPDFUA2ValidationIssues-Array einen stabilen namespaced Code, die einschlägige Klausel, den Objektpfad, die Objektnummer, den nullbasierten Seitenindex, sofern bekannt, und eine menschenlesbare Meldung trägt
- Die Validierung erzeugt niemals ein fehlendes
StructTreeRootoder Namespace-Dictionary - Namespace-bewusste Role Maps werden transitiv mit Zyklus- und Tiefenerkennung aufgelöst
- Dokument-Metadaten, menschenlesbare Strings, Optional Content, Strukturelemente, Parent-Backlinks, Attribute, Annotationen, Formulare, Navigation, Associated Files, Überschriften, Listen, Tabellen, Ruby, Warichu, Aussprachehinweise, Formeln und MathML werden in einem begrenzten Durchlauf geprüft
- Die Zugehörigkeit geladener Annotationen wird aus dem physischen ParentTree aufgelöst und unterstützt skalare oder Array-
K-Einträge, ohne auf Producer-State angewiesen zu sein - Lokale Navigation verlangt Strukturziele, wendet
SDvor einem kompatiblenD-Fallback an und validiert verschachtelte Page-Label-Number-Trees - XMP-Eigenschaften werden über den Namespace-URI aufgelöst, damit gültige alternative Präfixe interoperabel bleiben
- Tabellen-Diagnostik unterscheidet ungültige Spans, Zellüberschneidungen, unregelmäßige Zeilen und Zeilengruppen, tabellenübergreifende IDs, doppelte oder zyklische Header-Referenzen und fehlende algorithmische Zuordnungen
- Listen-Diagnostik unterscheidet ungültige Nummerierung, nicht eingewickelten Inhalt, Label- und Body-Struktur, geordnete Fortsetzungsreferenzen auf gleicher Ebene und Fortsetzungszyklen
- Die erweiterte Tabellengeometrie teilt die
MaxObjects-Grenze und schlägt kontrolliert mitua2.table.limit.cellsfehl ua2.limit.objectsschlägt kontrolliert fehl, bevor ein übergroßer Graph gescannt wird
Maschinenlesbare Findings
Der THPDFComplianceFindings-Overload bildet denselben begrenzten Validierungsdurchlauf in das gemeinsame Compliance-Modell ab, ohne die Validierungsreihenfolge zu ändern oder den Graphen zu verändern
Jedes Finding identifiziert PDF/UA-2, Schweregrad, Rule-ID, Normklausel, Pfad, Objektnummer, Seitenindex, Meldung und einen crsNotAttempted-Repair-Status