CheckFileCompliance
Konformität, Dokumentinspektion
Auswahl des PDF/UA-Reader-Profils
PDF/UA-Prüfungen wählen Teil 2, wenn XMP pdfuaid:part=2 ausweist, und behalten andernfalls die Prüfungen von Teil 1 bei; die hier beschriebenen älteren PDF/UA-1-Prüfungen gelten nicht automatisch für Teil 2
Das PDF/UA-2-Profil implementiert zentrale Identifikations-, Namespace-, Rollen- und Strukturprüfungen; strukturierte Berichte verwenden PDF/UA-2 und ISO 14289-2 und legen fullCertification=false und den nicht verifizierten Umfang offen
Verwenden Sie CheckFilePDFUACompliance oder RunPDFUAValidationPipelineTask, um einen Zielteil zu erzwingen, und GetPDFUAReadValidationCoverageJSON, um Fähigkeitsgrenzen zu prüfen
Beschreibung
Liest eine externe PDF-Datei und prüft sie gegen einen gewählten ISO-Konformitätsstandard. Der Rückgabewert ist entweder null (Datei besteht den gewählten Test fehlerfrei) oder ein von null verschiedenes StringListID-Handle, das jede erkannte Problematik auflistet. Jeder Eintrag der Liste besteht aus einem Kurzcode, einem Doppelpunkt und einer verständlichen Meldung — exakt dasselbe Codeformat wie bei GetPDFUADiagnostics. Zählen Sie das Ergebnis mit GetStringListCount und GetStringListItem aufDer PDF/A-Test deckt alle sechs Konformitätsmodi ab (PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-3a, PDF/A-3b) und liest die XMP-Einträge
pdfaid:part/pdfaid:conformance, um zu entscheiden, welcher Regelsatz anzuwenden istDer PDF/UA-1-Test (seit v3.56.0) prüft eine externe PDF gegen ISO 14289-1 und erzeugt Diagnosecodes im Bereich
10xxx, damit sie visuell getrennt von den PDF/A-Codes 00xxx bleiben
Syntax
Delphi
Function TPDFlib.CheckFileCompliance(Const InputFileName, Password: WideString; ComplianceTest, Options: Integer): Integer;
ActiveX
Function PDFlib::CheckFileCompliance(InputFileName As String, Password As String, ComplianceTest As Long, Options As Long) As Long
DLL
int DLCheckFileCompliance(int InstanceID, const wchar_t * InputFileName, const wchar_t * Password, int ComplianceTest, int Options);
Parameter
| InputFileName | Vollständiger Pfad der zu prüfenden PDF-Datei. Die Datei wird schreibgeschützt geöffnet und nicht verändert |
|---|---|
| Password | Kennwort zum Öffnen der Datei. Übergeben Sie bei unverschlüsselten Dokumenten einen leeren String. Beachten Sie, dass ein verschlüsseltes Dokument den PDF/A-Test (Code 00006) unabhängig davon nicht besteht, ob das richtige Kennwort geliefert wird — PDF/A verbietet Verschlüsselung |
| ComplianceTest | Der zu prüfende Standard. 1 — PDF/A (ISO 19005-1/-2/-3, alle sechs Konformitätsstufen). 2 — PDF/UA-1 (ISO 14289-1:2014, barrierefreies PDF). 3 — PDF/X (ISO 15930, einschließlich der PDF/X-6-Familie). 4 — PDF/VT-3 (ISO 16612-3:2020 auf einer PDF/X-6-Familienbasis). 5 — PDF/R-1 eingeschränkter Rasteraustausch. 6 — PDF/VCR-1 Ersetzungstemplates für variable Inhalte. 7 — PDF/E-1 Austausch technischer Dokumente |
| Options | Bit-Flags, die den Test verändern. 0 — Standard: jede im Dokument gefundene Problematik melden. 1 — Nach der ersten Problematik anhalten und sofort zurückkehren. Nützlich, wenn der Aufrufer nur ein Bestanden/Durchgefallen-Signal benötigt |
Rückgabewerte
| 0 | Die Datei ist konform zum gewählten Standard |
|---|---|
| Nicht-null | Ein StringListID-Handle, dessen Einträge jede erkannte Nichtkonformität beschreiben. Das Handle bleibt gültig, bis das Dokument geschlossen oder ReleaseStringList aufgerufen wird |
PDF/A-Problemcodes (ComplianceTest = 1)
| 00002 | Die PDF-Version überschreitet das von der Konformitätsstufe zugelassene Maximum (PDF/A-1 endet bei 1.4; PDF/A-2 und PDF/A-3 enden bei 1.7). Die Detailzeile nennt die betroffene Version und das zulässige Maximum |
|---|---|
| 00003 | Der Catalog enthält /OCProperties (optionaler Inhalt / Ebenen), was PDF/A-1 verbietet. PDF/A-2 und PDF/A-3 erlauben Ebenen und lösen diese Prüfung nicht aus |
| 00005 | Das XMP-Paar pdfaid:part+pdfaid:conformance fehlt, ist fehlerhaft oder enthält einen Wert außerhalb der gültigen Menge 1A, 1B, 2A, 2B, 3A, 3B. Die Bibliothek kann nicht bestimmen, welcher Regelsatz anzuwenden ist, daher wird dies unabhängig von Options als fatale Problematik gemeldet |
| 00006 | Das Dokument ist verschlüsselt. PDF/A verbietet Verschlüsselung in jedem Teil |
| 00007 | Der Catalog hat keinen /OutputIntents-Eintrag. Alle PDF/A-Teile verlangen einen Output Intent, damit der Rendering-Farbraum eindeutig definiert ist |
| 00011 | Der Catalog hat keinen /MarkInfo-Eintrag. Nur für Konformität auf a-Stufe erforderlich (PDF/A-1a, 2a, 3a) — Tagged PDF muss sich selbst deklarieren |
| 00012 | Der Catalog hat keinen /StructTreeRoot-Eintrag. Nur für Konformität auf a-Stufe erforderlich. Ein Tagged-PDF-Dokument muss einen logischen Strukturbaum besitzen |
PDF/UA-1-Problemcodes (ComplianceTest = 2)
| 10001 | Der XMP-Metadatenstream enthält kein pdfuaid:part, oder der Wert ist nicht 1. ISO 14289-1 §5 verlangt, dass sich eine konforme Datei über diese Eigenschaft identifiziert; ISO 14289-1 §6.2 verbietet, Konformität ohne sie zu erklären |
|---|---|
| 10002 | Der Dokument-Catalog hat keinen /Metadata-Stream. Eine PDF/UA-1-Konformitätserklärung wird in diesem Stream hinterlegt; ohne ihn kann sich die Datei nicht als barrierefrei ausweisen |
| 10003 | Das Catalog-Dictionary /MarkInfo fehlt oder /Marked ist nicht true. ISO 14289-1 §7.1 verlangt, dass sich jede konforme Datei als Tagged deklariert, damit Hilfstechnologien sich auf den Strukturbaum verlassen können |
| 10004 | Der Catalog hat keinen /StructTreeRoot-Eintrag. Eine PDF/UA-1-Datei muss einen logischen Strukturbaum enthalten, der Lesereihenfolge und Semantik des Dokuments beschreibt |
| 10005 | Das Dictionary /ViewerPreferences fehlt oder sein Eintrag /DisplayDocTitle ist nicht true. ISO 14289-1 §7.1 verlangt von konformen Readern, den Dokumenttitel in der Fensterleiste statt des Dateinamens anzuzeigen |
| 10006 | Der Catalog-Eintrag /Lang fehlt oder ist leer. ISO 14289-1 §7.2 (unter Verweis auf ISO 32000-1 §14.9.2) verlangt, dass jede konforme Datei ihre natürliche Sprache deklariert, damit Screenreader die richtige Stimme und Ausspracheregeln wählen |
| 10007 | Der XMP-Metadatenstream trägt kein nicht-leeres Dublin-Core-dc:title. ISO 14289-1 §7.1 verlangt "einen dc:title-Eintrag, der das Dokument eindeutig identifiziert" |
| 10008 | Das Dictionary /MarkInfo hat /Suspects auf true gesetzt. ISO 14289-1 §7.1: Dateien mit PDF/UA-Konformitätsanspruch müssen einen Suspects-Wert von false haben — der Wert true kennzeichnet die Strukturierung als bekanntermaßen fehlerbehaftet |
| 10009 | Die /RoleMap des Dokuments ordnet einen oder mehrere Standard-Strukturtypen um. ISO 14289-1 §7.1: in ISO 32000-1 §14.8.4 definierte Standard-Tags (P, H1..H6, Figure, Table usw.) dürfen nicht umgeordnet werden. Die Detailzeile nennt das erste umgeordnete Standard-Tag |
| 10010 | Die Datei ist verschlüsselt, aber Bit 10 des Berechtigungsschlüssels /P der Verschlüsselung (Maske 512, "Extract for accessibility") ist nicht gesetzt. ISO 14289-1 §7.16 verlangt von jeder verschlüsselten konformen Datei die Freigabe der Barrierefreiheits-Extraktion, damit Hilfstechnologien den Inhalt erreichen können |
| 10011 | Ein dynamisches XFA-Formular wurde erkannt: Das XFA-XDP-Paket enthält <dynamicRender>required</dynamicRender>. ISO 14289-1 §7.15 verbietet dynamische XFA-Formulare in konformen Dateien; statisches XFA ist zulässig |
| 10012 | Ein Reference XObject (Form XObject mit einem /Ref-Eintrag) wurde erkannt. ISO 14289-1 §7.20 verbietet Reference XObjects, da sie einem PDF erlauben, ein anderes per Referenz einzubetten, ohne den referenzierten Inhalt für Hilfstechnologien offenzulegen |
| 10013 | Eine oder mehrere TrapNet-Anmerkungen wurden erkannt. ISO 14289-1 §7.18.2 verbietet TrapNet in konformen Dateien ausdrücklich. Die Detailzeile meldet, wie viele Anmerkungen gefunden wurden |
| 10014 | Eine oder mehrere Seiten tragen Anmerkungen, setzen aber nicht /Tabs /S in ihrem Seitendictionary. ISO 14289-1 §7.18.3 verlangt, dass die Tabulatorreihenfolge auf solchen Seiten dem Strukturbaum folgt, was durch /Tabs /S signalisiert wird. Die Detailzeile meldet die Anzahl der betroffenen Seiten |
| 10015 | Bei einer oder mehreren Link-Anmerkungen fehlt eine nicht-leere Alternativbeschreibung in /Contents. ISO 14289-1 §7.18.5 verlangt, dass jede Link-Anmerkung eine barrierefreie Beschreibung trägt, damit Screenreader das Linkziel ansagen können. Die Detailzeile meldet die Anzahl der betroffenen Link-Anmerkungen |
| 10016 | Bei einem oder mehreren FileSpec-Dictionarys eingebetteter Dateien fehlt der Dateinamensschlüssel /F. ISO 14289-1 §7.11 verlangt, dass jedes FileSpec einer eingebetteten Datei sowohl /F als auch /UF trägt |
| 10017 | Bei einem oder mehreren FileSpec-Dictionarys eingebetteter Dateien fehlt der Unicode-Dateinamensschlüssel /UF. ISO 14289-1 §7.11 verlangt, dass jedes FileSpec einer eingebetteten Datei sowohl /F als auch /UF trägt |
| 10018 | Bei einem oder mehreren Konfigurations-Dictionarys optionaler Inhalte fehlt eine nicht-leere Textzeichenkette /Name. ISO 14289-1 §7.10 verlangt, dass jedes OCG-Konfigurationsdictionary (der Standard-Eintrag D sowie jedes Dictionary in OCProperties/Configs) ein nicht-leeres /Name trägt |
| 10019 | Ein oder mehrere Konfigurations-Dictionarys optionaler Inhalte enthalten den verbotenen Schlüssel /AS. ISO 14289-1 §7.10 verbietet /AS in jedem OCG-Konfigurationsdictionary ausdrücklich, um automatische, durch Nutzungsinformationen gesteuerte Zustandsanpassungen zu verhindern |
| 10020 | Eine oder mehrere vom Dokument referenzierte Schriften außer den Standard-14 betten ihr Schriftprogramm nicht ein (kein Eintrag FontFile, FontFile2 oder FontFile3 im FontDescriptor). ISO 14289-1 §7.21.4.1 verlangt, dass jede für das Rendering verwendete Schrift ihr Programm einbettet. Type-3-Schriften überspringen diese Prüfung, da ihre Glyphen inline als CharProcs vorliegen |
| 10021 | Bei einem oder mehreren CIDFontType2-Nachfolgern fehlt der Eintrag /CIDToGIDMap. ISO 14289-1 §7.21.3.2 verlangt, dass jede eingebettete Type-2-CIDFont /CIDToGIDMap trägt (entweder als Stream, der CIDs auf Glyphenindizes abbildet, oder als Name Identity) |
| 10022 | Auf eine oder mehrere Standard-14-Schriften (Helvetica, Times, Courier, Symbol, ZapfDingbats und deren fette/kursive Varianten) wird ohne eingebettetes Schriftprogramm verwiesen. ISO 14289-1 §7.21.4 Anmerkung 5 stellt klar, dass es für die 14 Standard-Type-1-Schriften keine Befreiung von der Einbettungspflicht gibt |
| 10023 | Bei einer oder mehreren Schriften fehlt eine /ToUnicode-CMap, und sie fallen nicht unter die Befreiungsliste aus §7.21.7. Diese Liste umfasst die vordefinierten MacRomanEncoding / MacExpertEncoding / WinAnsiEncoding, Type-0-Schriften, deren nachgeordnete CIDFont die Adobe-Zeichensammlungen GB1 / CNS1 / Japan1 / Korea1 verwendet, und nicht-symbolische TrueType-Schriften |
| 10024 | Das erste Überschriftenelement in Dokumentreihenfolge ist nicht H1 (oder das stark strukturierte H). ISO 14289-1 §7.4.2: "Werden Überschriften-Tags verwendet, muss H1 die erste sein" |
| 10025 | In Dokumentreihenfolge wurden ein oder mehrere Überschriftenebenensprünge erkannt — etwa eine H1, unmittelbar gefolgt von einer H3, wodurch H2 übersprungen wird. ISO 14289-1 §7.4.2 verlangt, dass absteigende Überschriftensequenzen in strikter numerischer Reihenfolge ohne Überspringen von Zwischenebenen verlaufen |
| 10026 | Bei einer oder mehreren Widget-Anmerkungen fehlt der Eintrag /StructParent. ISO 14289-1 §7.18.4 verlangt, dass Widget-Anmerkungen in einem Form-Struktur-Tag verschachtelt sind; ohne /StructParent ist das Widget vom Strukturbaum aus prinzipiell nicht erreichbar. Die Detailzeile meldet die Anzahl |
| 10027 | Eine oder mehrere Widget-Anmerkungen haben einen /StructParent-Eintrag, aber der Wert löst sich über StructTreeRoot/ParentTree nicht zu einem Strukturelement mit /S = Form auf. ISO 14289-1 §7.18.4 verlangt, dass jede Widget-Anmerkung in einem Form-Struktur-Tag verschachtelt ist. Mögliche Ursachen: Der /ParentTree-Eintrag fehlt vollständig, verweist auf ein Nicht-StructElem (roher Integer / MCR-Dictionary) oder nennt ein Nicht-Form-Tag |
| 10028 | Eine oder mehrere nicht-symbolische TrueType-Schriften haben ein /Encoding (oder das /BaseEncoding eines Encoding-Dictionarys), das nicht MacRomanEncoding oder WinAnsiEncoding ist. ISO 14289-1 §7.21.6 beschränkt die Kodierung nicht-symbolischer TrueType-Schriften auf diese beiden vordefinierten Namen |
| 10029 | Eine oder mehrere symbolische TrueType-Schriften tragen einen /Encoding-Eintrag im Schrift-Dictionary. Der vierte Absatz von ISO 14289-1 §7.21.6 verbietet das — die Kodierung symbolischer TrueType-Schriften darf ausschließlich über die cmap-Tabelle des eingebetteten Schriftprogramms ausgedrückt werden |
| 10030 | Bei einem oder mehreren L (Liste)-Strukturelementen fehlt das Attribut ListNumbering. ISO 14289-1 §7.6 verlangt, dass jedes L-Tag seinen Nummerierungsstil über dieses Attribut deklariert. Gültige Werte sind None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha und LowerAlpha (ISO 32000-1 Tabelle 347) |
| 10031 | Eine oder mehrere Link-Anmerkungen tragen ein URI-Aktions-Dictionary, dessen /IsMap-Eintrag true ist. ISO 14289-1 §7.18.5 verbietet /IsMap = true bei einer URI-Aktion, sofern keine gleichwertige Funktionalität an anderer Stelle des Inhalts ohne /IsMap-Schlüssel bereitgestellt wird. Autoren mit einem legitimen IsMap-Anwendungsfall sollten diese Diagnose eigenständig unterdrücken |
| 10032 | Bei einem oder mehreren Note-Strukturelementen fehlt der Eintrag /ID. ISO 14289-1 §7.9 verlangt, dass jedes Note-Tag eine eindeutige /ID deklariert, damit Querverweise ein stabiles Ziel treffen |
| 10033 | Zwei oder mehr Note-Strukturelemente teilen sich denselben /ID-Wert. Die Detailzeile meldet die Anzahl der erkannten Dublettenpaare. ISO 14289-1 §7.9 verlangt, dass Note-IDs innerhalb des Dokuments eindeutig sind |
| 10034 | Ein oder mehrere nicht-symbolische TrueType-Programme (FontDescriptor ohne Symbolic-Flag, FontFile2-Stream vorhanden) betten eine cmap-Tabelle ein, deren einzige Untertabelle der symbolische Microsoft-Eintrag (3,0) ist. Der erste Absatz von ISO 14289-1 §7.21.6 verlangt mindestens eine nicht-symbolische cmap-Untertabelle, damit das Programm die von seinem /Encoding deklarierten Codepoints rendern kann |
| 10035 | Eine oder mehrere nicht-symbolische TrueType-Schriften deklarieren ein /Encoding mit einem /Differences-Array, das Glyphennamen enthält, die nicht in der Adobe Glyph List 2.0 stehen. .notdef ist freigegeben, da die Spezifikation es implizit erlaubt. Der dritte Absatz von ISO 14289-1 §7.21.6 verlangt, dass jeder Differences-Eintrag in der AGL liegt |
| 10036 | Bei einer oder mehreren einfachen TrueType-Schriften weichen die Breiten von den entsprechenden Metriken im eingebetteten Schriftprogramm um mehr als ein Tausendstel Geviert ab. ISO 14289-1 §7.21.5 verlangt, dass das /Widths-Array mit den eingebetteten Glyphenmetriken übereinstimmt |
| 10037 | Bei einem oder mehreren CIDFontType2 weichen die Breiten von den entsprechenden Metriken im eingebetteten TrueType-Programm um mehr als ein Tausendstel Geviert ab. ISO 14289-1 §7.21.5 verlangt, dass das /W-Array mit den eingebetteten Glyphenmetriken übereinstimmt |
| 10038 | Der /CharSet-Eintrag eines Type-1-FontDescriptor lässt einen oder mehrere im eingebetteten Schriftprogramm vorhandene Glyphennamen aus. ISO 14289-1 §7.21.4.2 verlangt, dass der Eintrag jede eingebettete Glyphe aufzählt |
| 10039 | Der /CIDSet-Eintrag eines CID-FontDescriptor lässt einen oder mehrere CIDs aus, die im eingebetteten Schriftprogramm auf Glyphen abgebildet werden. ISO 14289-1 §7.21.4.2 verlangt, dass die Bitmenge jeden eingebetteten CID identifiziert |
| 10040 | Ein texthaltiges Form XObject wird aus Seiteninhalt außerhalb von Marked Content aufgerufen. ISO 14289-1 §7.20 verlangt, dass Form-XObject-Inhalt in Strukturelemente eingebunden wird |
| 10041 | Ein oder mehrere Textanzeige-Operanden lösen sich zur Glyphe .notdef auf. ISO 14289-1 §7.21.8 verbietet Verweise auf .notdef unabhängig vom Textrenderingmodus |
| 10042 | Bei einem oder mehreren Media-Clip-Data-Dictionarys (erkennbar an /S /MCD, optional /Type /MediaClip) fehlt der erforderliche Content-Type-Eintrag /CT. ISO 14289-1 §7.18.6 stuft diesen in ISO 32000-1 Tabelle 274 optionalen Schlüssel als erforderlich hoch |
| 10043 | Bei einem oder mehreren Media-Clip-Data-Dictionarys fehlt das erforderliche /Alt-Array (Paare aus Sprachstring und Alternativtext). ISO 14289-1 §7.18.6 stuft diesen in ISO 32000-1 Tabelle 274 optionalen Schlüssel als erforderlich hoch, damit Hilfstechnologien eine Beschreibung für eingebettete Multimedia-Inhalte ansagen können |
| 10044 | Ein oder mehrere Strukturbaumknoten tragen mehr als ein direktes H-Kind (generische Überschrift). ISO 14289-1 §7.4.4 verbietet das ausdrücklich — teilen Sie den Abschnitt auf oder ersetzen Sie die H-Tags durch nummerierte Ebenen H1..H6 |
Anmerkungen
Der PDF/A-Test ist als schneller Selbstcheck vor der Auslieferung gedacht. Er findet die Dokumentebenen-Problematiken, die eine Datei unmittelbar disqualifizieren (falsche PDF-Version, fehlender OutputIntent, fehlender Strukturbaum auf A-Stufe, Verschlüsselung, Ebenen in PDF/A-1). Er durchläuft nicht jeden Content-Stream-Operator und prüft weder Schrifteinbettung noch Farbraumreferenzen für jedes gezeichnete Objekt — diese Validierungen erfordern einen spezialisierten PDF/A-Validator (etwa veraPDF). Verwenden Sie diese Funktion als Erstprüfung und als Regressionstor in Build-Pipelines. Verwenden Sie CreatePreflightReport oder SavePreflightReport, wenn die Bibliothek die Problemlisten in einen wiederverwendbaren Textbericht formatieren soll. Verwenden Sie CreatePreflightReportEx oder SavePreflightReportEx für Berichtsausgabe als Text, JSON, HTML oder CSV, oder sehen Sie sich Preflight Reports für den vollständigen Berichts-Workflow anDie zugehörige API
GetPDFUADiagnostics führt analoge Prüfungen für PDF/UA (ISO 14289-1) am gerade im Speicher aufgebauten Dokument aus, nicht an einer externen DateiRufen Sie beim Erzeugen von PDF/A-Ausgabe mit dieser Bibliothek
SetPDFAMode auf, bevor Sie Inhalt hinzufügen. Die Sperre auf der Erzeugungsseite in SetPDFAMode blockiert die vom gewählten Teil verbotenen Operationen, sodass ein so erzeugtes Dokument CheckFileCompliance normalerweise automatisch besteht
Beispiel
// Validate a delivered PDF/A file and print all issues
var
Issues, Count, I: Integer;
begin
Issues := PDF.CheckFileCompliance('archive.pdf', '', 1, 0);
if Issues = 0 then
WriteLn('archive.pdf: PDF/A conformant')
else
begin
Count := PDF.GetStringListCount(Issues);
WriteLn('archive.pdf: ', Count, ' PDF/A issue(s) detected:');
for I := 1 to Count do
WriteLn(' ', PDF.GetStringListItem(Issues, I));
end;
end;
// Fast pass/fail gate in a CI pipeline — stop on the first issue
var
Failed: Boolean;
begin
Failed := PDF.CheckFileCompliance('build/output.pdf', '', 1, 1) <> 0;
if Failed then
Halt(1);
end;Siehe auch
Preflight Reports, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, SetPDFAMode, GetPDFUADiagnostics, GetStringListCount, GetStringListItem, SetPDFUAMode
Konformitätstest 3 prüft PDF/X (ISO 15930): Ausgabenidentifikation, Output Intent, Seitengeometrie, eingebettete Schriften und den verbotenen Funktionsumfang; für PDF/X-6 validiert er zusätzlich Anmerkungsflags und feste Darstellungen, AcroForm- und Signaturdarstellungen, XFA- und Viewer-generierte Darstellungsausschlüsse, Aktionsplatzierung, Aktionsketten, den zulässigen benannten Aktionsumfang und jeden UseBlackPtComp-Wert
Konformitätstest 4 prüft die PDF/VT-3-Identifikationsmetadaten, seine PDF/X-6-Familienbasis, den DPartRoot- und DPart-Graphen, DPM-Namen und -Werte, Record-Level, Seitenreihenfolge und exakte Blattabdeckung; die kombinierten Prüfungen teilen sich einen Parserdurchlauf
Konformitätstest 5 prüft die PDF/R-1-Markerplatzierung, Version und Verschlüsselung, Indirektobjekte der Generation null, eingeschränkte Wörterbücher und Filter, Ein-Stream-Seitenprogramme, geordnete Rasterstreifen, Bildcodierungen, Seitenabdeckung und effektive Auflösung; er kann eine geteilte Validierungspipeline-Parsung wiederverwenden
Konformitätstest 6 prüft das PDF/X-Fundament und die PDF/VCR-1-XMP-Identifikation, die einzelne direkte Vorlagenwurzel, deklarierte Felder, das optionale Seitenauswahlfeld und jeden Blatt-PassThrough-Ersetzungsplatzhalter, Seitenbindung, MCID und Begrenzungsboxen; er kann eine geteilte Validierungspipeline-Parsung wiederverwenden
Konformitätstest 7 prüft die PDF/E-1-Identifikation und Lebenszyklusmetadaten, Trailer-Identifikatoren, zulässige Verschlüsselung, Output Intents und Gerätfarbräume, Inhaltsoperatoren, Schriften, Anmerkungen, Formulare, optionalen Inhalt, Aktionen, externe Dateiverweise, Grafikzustände und 3D-Streambeschränkungen; er kann eine geteilte Validierungspipeline-Parsung wiederverwenden