GetPDFUADiagnosticsA
PDF/UA & Barrierefreiheit
Beschreibung
Das nachgestellte A bezeichnet den ANSI-DLL-Einstiegspunkt (char); die ActiveX/COM-Oberfläche stellt nur die Unicode-Form bereit. Das Verhalten entspricht GetPDFUADiagnostics, und Zeichenfolgenargumente werden mit der aktuellen Codepage von SetAnsiMode interpretiert
Gibt eine durch Zeilenumbrüche getrennte Liste möglicher Konformitätsprobleme mit PDF/UA-1 (ISO 14289-1) im aktuellen Dokument zurück. Jede Zeile enthält einen Problemcode, gefolgt von einem Doppelpunkt und einer verständlichen Beschreibung. Wenn keine Probleme erkannt werden, wird eine leere Zeichenfolge zurückgegeben.
Syntax
Delphi
Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;
DLL
const char * DLGetPDFUADiagnosticsA(int InstanceID);
Problemcodes
| PDF-VERSION-LOW | Die PDF-Version des Dokuments (wie im Dateikopf verzeichnet) liegt unter 1.7. PDF/UA-1 ist auf Grundlage von ISO 32000-1:2008 (PDF 1.7) definiert. Rufen Sie SetPDFUAMode auf, um die Version automatisch auf 1.7 anzuheben |
|---|---|
| MARKED-FALSE | MarkInfo/Marked ist nicht auf true gesetzt; das Dokument ist kein getaggtes PDF |
| LANG-MISSING | Der Eintrag /Lang im Dokumentkatalog fehlt oder ist leer. ISO 14289-1 §7.3 verlangt eine Deklaration der natürlichen Sprache. |
| DISPLAYDOCTITLE-FALSE | ViewerPreferences/DisplayDocTitle ist nicht true. ISO 14289-1 §7.1 verlangt dies, damit der Dokumenttitel in der Titelleiste angezeigt wird. |
| DOCINFO-TITLE-MISSING | Der Eintrag /Title im Dokumentinformationswörterbuch fehlt oder ist leer. PDF/UA-1 verlangt einen Dokumenttitel, damit Hilfstechnologien ihn beim Öffnen des Dokuments ausgeben können. Diese Prüfung ergänzt DISPLAYDOCTITLE-FALSE: Jene Prüfung kontrolliert, ob der Titel im Viewer angezeigt wird; diese Prüfung kontrolliert, ob der Titelwert selbst vorhanden ist. Rufen Sie SetInformation mit dem Schlüssel Title auf, um ihn festzulegen |
| XMP-NO-PDFUAID | Der XMP-Metadatenstream enthält keinen Eintrag pdfuaid:part. Gemäß ISO 14289-1 §7.2 erforderlich |
| ANNOT-NO-CONTENTS:N | Bei N nicht ausgenommenen Anmerkungen (ohne die Subtypen Widget, PrinterMark und TrapNet) fehlt ein Contents-Eintrag. Erforderlich nach ISO 14289-1 §7.18.1. |
| EMBED-NO-AFR:N | Bei N eingebetteten Dateien fehlt im Dateispezifikationswörterbuch ein AFRelationship-Eintrag. Gemäß ISO 14289-1 §7.11 erforderlich |
| FIGURE-NO-ALT:N | N Strukturelemente vom Typ Figure oder Formula besitzen keinen Alt-Textwert. ISO 14289-1 §7.5 und ISO 32000-1 §14.9.3 verlangen alternative Beschreibungen sowohl für grafische Abbildungen als auch für mathematische Formeln. |
| HEADING-LEVEL-SKIP:N | N Sprünge in Überschriftenebenen wurden in Dokumentreihenfolge erkannt, beispielsweise eine H1 direkt gefolgt von einer H3 unter Auslassung von H2. ISO 14289-1 §7.1 und WCAG 2.x-Erfolgskriterium 1.3.1 verlangen eine lückenlose Verschachtelung von Überschriften |
| STRUCT-UNCLOSED:N | N Strukturelemente sind noch geöffnet, da EndTag nicht so oft wie erforderlich aufgerufen wurde. Diese Elemente fehlen in der Strukturbaumwurzel. |
| TABLE-TH-NO-SCOPE:N | N TH-Strukturelemente für Tabellenkopfzellen besitzen kein Scope-Attribut. ISO 32000-1 §14.8.4.3.4 Tabelle 337 definiert Scope mit Row, Column oder Both als das Attribut, das beschreibt, für welche Datenzellen die jeweilige Kopfzelle gilt. Ohne dieses Attribut können Hilfstechnologien Kopf- und Datenzellen in komplexen Tabellen oder Tabellen mit mehreren Kopfzeilen nicht zuverlässig zuordnen. Rufen Sie unmittelbar nach dem Tagging jedes TH-Elements SetStructElemScope oder AddTagAttribute mit Owner='Table' und Name='Scope' auf |
| FORM-NO-TOOLTIP:N | Bei N interaktiven Formularfeldern (Widget-Anmerkungen) fehlt ein TU-Eintrag (Tooltip/barrierefreier Name). ISO 14289-1 §7.18.4 verlangt, dass alle interaktiven Formularfelder einen TU-Eintrag besitzen, damit Hilfstechnologien dem Benutzer den Zweck des Felds ansagen können. /TU ist der barrierefreie Name, den Bildschirmleseprogramme vorlesen; er unterscheidet sich von /T (dem programmgesteuert verwendeten partiellen Feldnamen). Legen Sie beim Erstellen oder Laden von Formularfeldern den TU-Wert fest. |
| LIST-STRUCT:N | N Strukturelemente LI oder LBody erscheinen außerhalb ihres erforderlichen übergeordneten Elements. ISO 32000-1 §14.8.4.4 verlangt, dass LI ein direktes untergeordnetes Element von L (Liste) und LBody ein direktes untergeordnetes Element von LI (Listenelement) ist. Fehlerhafte Listenverschachtelung verhindert die korrekte Navigation durch Hilfstechnologien. Prüfen Sie die Folge der Aufrufe BeginTag / EndTag für alle listenbezogenen Elemente |
| ROLEMAP-UNMAPPED:N | Im Dokument erscheinen N benutzerdefinierte Strukturelementtypen ohne Eintrag im Wörterbuch /RoleMap. ISO 14289-1 §7.1 und ISO 32000-1 §14.7.3 verlangen, dass jeder nicht standardmäßige Strukturtyp einem PDF-Standardtyp zugeordnet wird, damit Hilfstechnologien das Element behandeln können. Rufen Sie vor dem Speichern für jeden benutzerdefinierten Typ AddRoleMap auf. Die Problembeschreibung führt die nicht zugeordneten Typnamen auf |
| SUSPECTS-TRUE | MarkInfo/Suspects ist auf true gesetzt. ISO 14289-1 §7.1 verlangt für Dateien, die PDF/UA-Konformität beanspruchen, einen Suspects-Wert von false. Ein true-Wert kennzeichnet das Tagging als bekanntermaßen fehlerhaft. Rufen Sie SetMarkInfo auf, nachdem das Dokument vollständig getaggt wurde, um Suspects auf false zurückzusetzen |
| ROLEMAP-STANDARD-REMAP:N | N Standardstrukturtypen erscheinen als "benutzerdefinierter" Schlüssel in /RoleMap und würden beim Speichern neu zugeordnet. ISO 14289-1 §7.1 verbietet die Neuzuordnung von Standardtags aus ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table usw.). Die Detailzeile führt die betroffenen Standardtagnamen auf. Entfernen Sie die entsprechenden Aufrufe von AddRoleMap |
| DC-TITLE-MISSING | Im Dublin-Core-Feld dc:title des XMP-Metadatenstroms fehlt ein Wert oder er ist leer. ISO 14289-1 §7.1 verlangt, dass der Metadata-Strom einen dc:title-Eintrag enthält, der das Dokument eindeutig bezeichnet. Diese Prüfung ist von DOCINFO-TITLE-MISSING getrennt, das nur den Eintrag /Info /Title prüft. SetPDFUAMode aufrufen, um den /Info-Titel in das XMP-Paket zu kopieren. |
| TRAPNET-ANNOT:N | Auf den Dokumentseiten wurden N TrapNet-Anmerkungen gefunden. ISO 14289-1 §7.18.2 verbietet TrapNet ausdrücklich in PDF/UA-1-konformen Dateien. Entfernen Sie die betreffenden Anmerkungen vor dem Speichern. |
| ANNOT-PAGE-NO-TABS-S:N | N Seiten enthalten mindestens eine Anmerkung, doch ihr Seitenwörterbuch setzt nicht /Tabs /S. ISO 14289-1 §7.18.3 verlangt, dass die Tabulatorreihenfolge auf solchen Seiten dem Strukturbaum folgt, signalisiert durch /Tabs /S. Setzen Sie /Tabs /S im Seitenwörterbuch jeder Seite mit Anmerkungen. |
| ENCRYPT-NO-ACCESS | Das Dokument ist verschlüsselt und PDFUAMode ist aktiv, aber Bit 10 des Berechtigungsschlüssels /P der Verschlüsselung (Maske $200, barrierefreie Extraktion) ist gelöscht. ISO 14289-1 §7.16 verlangt, dass jede verschlüsselte konforme Datei die barrierefreie Extraktion erlaubt. Wird PDFUAMode vor dem Aufruf von Encrypt gesetzt, wird das Bit automatisch aktiviert. Bei umgekehrter Aufrufreihenfolge ist das Verschlüsselungswörterbuch bereits mit dem alten Wert /P vorhanden — Encrypt erneut aufrufen, damit das Wörterbuch neu geschrieben wird. |
| FIRST-HEADING-NOT-H1 | Das erste Überschriftselement in Dokumentreihenfolge ist nicht H1; der Sentinel H für stark strukturierte Dokumente zählt ebenfalls als Ebene 1. ISO 14289-1 §7.4.2 verlangt, dass das erste Überschriften-Tag in einem nicht stark strukturierten Dokument H1 ist. Die Detailzeile nennt die beanstandete Ebene |
| WIDGET-NO-STRUCTPARENT:N | N Widget-Anmerkungen fehlt ein Eintrag /StructParent. ISO 14289-1 §7.18.4 verlangt, dass Widget-Anmerkungen in einem Form-Struktur-Tag verschachtelt sind; ohne /StructParent kann das Widget überhaupt nicht vom Strukturbaum aus erreicht werden. Die Detailzeile meldet die Anzahl. Dies ist eine Teilprüfung — die vollständige Prüfung, ob der aufgelöste übergeordnete /S-Wert Form ist, wurde noch nicht implementiert |
| LIST-NO-NUMBERING:N | N L-Strukturelementen für Listen fehlt das Attribut ListNumbering. ISO 14289-1 §7.6 verlangt, dass jedes L-Tag seinen Nummerierungsstil über dieses Attribut deklariert; gültige Werte nach ISO 32000-1 Tabelle 347 sind None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha und LowerAlpha. Rufen Sie nach dem Öffnen jedes L-Tags SetStructElemListNumbering auf |
| MULTIPLE-H-CHILDREN:N | N Knoten des Strukturbaums enthalten mehr als ein direktes untergeordnetes H-Element für eine allgemeine Überschrift. ISO 14289-1 §7.4.4 verbietet dies — teilen Sie den übergeordneten Abschnitt oder ersetzen Sie die H-Tags durch nummerierte H1..H6-Sequenzen |
Rückgabewert
Eine durch Zeilenumbrüche getrennte Zeichenfolge mit Problembeschreibungen oder eine leere Zeichenfolge, wenn keine Konformitätsprobleme erkannt werden
Anmerkungen
Diese Funktion dient Entwicklern als Diagnosehilfe. Sie prüft den aktuellen Zustand des Dokuments im Speicher und meldet Probleme, die bei der PDF/UA-1-Validierung zu Fehlern führen könnten. Sie nach dem Laden oder Erstellen eines Dokuments aufrufen, um Probleme vor dem Speichern zu erkennen.
Wenn SetPDFUAMode aktiv ist und das Dokument gespeichert wird, werden mehrere Probleme (ANNOT-NO-CONTENTS, EMBED-NO-AFR) beim Speichern automatisch korrigiert. GetPDFUADiagnostics meldet den Zustand vor dem Speichern; Probleme, die beim Speichern automatisch korrigiert werden, bleiben aufgeführt, wenn sie davor vorhanden sind.
Diese Funktion verändert das Dokument nicht
Beispiel
var
Diag: WideString;
begin
PDFlib.SetPDFUAMode('en-US');
// ... build document
Diag := PDFlib.GetPDFUADiagnostics;
if Diag <> '' then
ShowMessage('PDF/UA issues found:'#10 + Diag);
end;Siehe auch
SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship