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

InputFileNameVollständiger Pfad der zu prüfenden PDF-Datei. Die Datei wird schreibgeschützt geöffnet und nicht verändert
PasswordKennwort 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
ComplianceTestDer 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
OptionsBit-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

0Die Datei ist konform zum gewählten Standard
Nicht-nullEin 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)

00002Die 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
00003Der 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
00005Das 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
00006Das Dokument ist verschlüsselt. PDF/A verbietet Verschlüsselung in jedem Teil
00007Der Catalog hat keinen /OutputIntents-Eintrag. Alle PDF/A-Teile verlangen einen Output Intent, damit der Rendering-Farbraum eindeutig definiert ist
00011Der 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
00012Der 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)

10001Der 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
10002Der 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
10003Das 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
10004Der Catalog hat keinen /StructTreeRoot-Eintrag. Eine PDF/UA-1-Datei muss einen logischen Strukturbaum enthalten, der Lesereihenfolge und Semantik des Dokuments beschreibt
10005Das 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
10006Der 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
10007Der 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"
10008Das 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
10009Die /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
10010Die 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
10011Ein 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
10012Ein 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
10013Eine 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
10014Eine 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
10015Bei 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
10016Bei 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
10017Bei 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
10018Bei 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
10019Ein 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
10020Eine 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
10021Bei 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)
10022Auf 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
10023Bei 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
10024Das 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"
10025In 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
10026Bei 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
10027Eine 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
10028Eine 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
10029Eine 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
10030Bei 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)
10031Eine 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
10032Bei 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
10033Zwei 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
10034Ein 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
10035Eine 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
10036Bei 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
10037Bei 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
10038Der /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
10039Der /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
10040Ein 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
10041Ein 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
10042Bei 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
10043Bei 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
10044Ein 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