SetPDFAMode
Dokumenteigenschaften, Konformität
Beschreibung
Aktiviert einen PDF/A-Konformitätsmodus für das ausgewählte Dokument. Ein einziger Aufruf führt die gesamte Einrichtung auf Dokumentebene aus, die für den gewählten PDF/A-Teil und die Konformitätsstufe erforderlich ist: Die PDF-Version wird auf das erforderliche Minimum angehoben, der Eintrag /MarkInfo wird geschrieben, wenn die Konformitätsstufe für getaggte PDFs (A) ausgewählt ist, dem Katalog wird ein Output Intent (sRGB-ICC-Profil DeviceRGB) hinzugefügt und die XMP-Namensraumeinträge pdfaid:part/pdfaid:conformance werden geschrieben. Die Bibliothek aktiviert außerdem eine erzeugungsseitige Konformitätsprüfung, die nachfolgende Aufrufe ablehnt, welche durch den gewählten Teil verbotene Inhalte ausgeben würden (siehe Remarks)
Rufen Sie dies einmal für ein neu erstelltes Dokument und vor dem Hinzufügen von Inhalten auf. Um eine vorhandene PDF/A-Datei zu validieren, die von dieser oder einer anderen Bibliothek erstellt wurde, verwenden Sie CheckFileCompliance mit ComplianceTest = 1
Syntax
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
Parameter
| NewMode | Der zu aktivierende PDF/A-Konformitätsmodus. Jeder Modus wird durch einen PDF/A-Teil (1, 2, 3 oder 4 — ISO 19005-1/-2/-3/-4) und eine Konformitätsstufe (B für grundlegende visuelle Wiedergabe, A für Barrierefreiheit von Tagged PDF) bezeichnet. 0 — PDF/A-Modus deaktivieren (Standard). 1 — PDF/A-1a (ISO 19005-1 Stufe A). PDF 1.4. Tagged PDF erforderlich. 2 — PDF/A-1b (ISO 19005-1 Stufe B). PDF 1.4. Nur visuelle Wiedergabe. 3 — PDF/A-2b (ISO 19005-2 Stufe B). PDF 1.7. Visuelle Wiedergabe; Transparenz und Ebenen zulässig. 4 — PDF/A-2a (ISO 19005-2 Stufe A). PDF 1.7. Tagged PDF erforderlich. 5 — PDF/A-3b (ISO 19005-3 Stufe B). PDF 1.7. Wie PDF/A-2b, erlaubt jedoch beliebige eingebettete Dateien. 6 — PDF/A-3a (ISO 19005-3 Stufe A). PDF 1.7. Wie PDF/A-2a, erlaubt jedoch beliebige eingebettete Dateien. 7 — PDF/A-3u (ISO 19005-3 Stufe U). PDF 1.7. Wie PDF/A-3b, deklariert jedoch, dass Text Unicode-Zuordnungen besitzen soll. 8 — PDF/A-2u (ISO 19005-2 Stufe U). PDF 1.7. Wie PDF/A-2b, deklariert jedoch, dass Text Unicode-Zuordnungen besitzen soll; eingebettete Dateien bleiben verboten. 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Durch Teil und Revisionsjahr statt durch eine Konformitätsstufe bezeichnet; Text benötigt Unicode-Zuordnungen und Tag-Kennzeichnung ist nicht erforderlich. 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Wie PDF/A-4, erlaubt zusätzlich 3D und Rich Media für technische Dokumente. 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Wie PDF/A-4, erlaubt zusätzlich eine eingebettete Datei beliebigen Formats. |
|---|
Rückgabewerte
| 0 | Fehlgeschlagen — kein Dokument ist geöffnet oder NewMode liegt außerhalb von 0–11 |
|---|---|
| 1 | Der PDF/A-Modus wurde erfolgreich aktiviert |
Anmerkungen
Der gewählte Modus steuert eine Konformitätssperre auf Erzeugungsseite. Nach der Aktivierung lehnt die Bibliothek gemäß ISO 19005 nachfolgende Aufrufe ab oder schreibt sie um, wenn sie Inhalte ausgeben würden, die der Teil verbietet:
| CMYK / Separation / Shader colors | In jedem PDF/A-Modus von 1 bis 11 gesperrt — das Dokument ist mit einem sRGB-Output-Intent eingerichtet, und es dürfen nur Farben verwendet werden, die mit der Geräteklasse des Output Intents kompatibel sind |
|---|---|
| Encryption | In jedem PDF/A-Modus blockiert. Legen Sie den Modus vor dem Aufruf einer verschlüsselungsbezogenen API fest. |
| Transparency / blend modes / page transparency groups | In den Modi 1 und 2 gesperrt, da PDF/A-1 Transparenz verbietet. In den Modi 3–11 zulässig, da PDF/A-2, -3 und -4 Transparenz erlauben |
| JavaScript actions | In jedem PDF/A-Modus blockiert — ISO 19005-1 §6.6.1 verbietet JavaScript, und das Verbot gilt in PDF/A-2/3 fort |
| Embedded files / file attachments | In den Modi 1–4 gesperrt (PDF/A-1 verbietet sie; PDF/A-2 erlaubt nur PDF/A-konforme eingebettete PDF-Dateien, was die Bibliothek nicht erzwingt). In den Modi 5, 6, 7, 9, 10 und 11 zulässig. PDF/A-3 erlaubt über die Zuordnung AFRelationship eingebettete Dateien beliebigen MIME-Typs, und PDF/A-4 führt dies fort; in einfachem PDF/A-4 muss die eingebettete Datei selbst PDF/A entsprechen, während PDF/A-4f diese Beschränkung aufhebt. |
Für die Stufen a (Modi 1, 4, 6) ist der Aufrufer für die erforderlichen Tagged-PDF-Inhalte verantwortlich, darunter Überschriftenstruktur, Alternativtext für Figuren, Tabellenbereichsattribute und RoleMap-Einträge für benutzerdefinierte Typen. Erstellen Sie den Strukturbaum mit BeginTag, BeginArtifact, AddRoleMap und den Settern für Strukturelemente. Rufen Sie vor dem Speichern GetPDFUADiagnostics auf, um die häufigsten Tagged-PDF-Probleme sichtbar zu machen. Stellen Sie für die Stufe u (Modus 7) sicher, dass die Schriftressourcen des Dokuments Unicode-Textzuordnungen für den gesamten gerenderten Text bereitstellen
PDF/A und PDF/UA können im selben Dokument aktiviert werden. Aktivieren Sie zuerst SetPDFAMode (die Teile 1a/2a/3a implizieren bereits Tagged PDF) und rufen Sie anschließend SetPDFUAMode auf, um die PDF/UA-spezifische Katalogeinrichtung hinzuzufügen (DisplayDocTitle, pdfuaid:part, automatisch /Tabs /S)
Beispiel
// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2); // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');
// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6); // PDF/A-3a
PDF.SetPDFUAMode('en-US'); // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');Siehe auch
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation