SetPDFAMode
Vlastnosti dokumentu, Shoda
Popis
Aktivuje režim souladu s PDF/A pro vybraný dokument. Jedno volání provede veškeré nastavení na úrovni dokumentu vyžadované zvolenou částí PDF/A a úrovní shody: verze PDF se zvýší na požadované minimum, položka /MarkInfo se zapíše, je-li zvolena úroveň shody tagovaného PDF (A), do katalogu se přidá output intent (ICC profil sRGB DeviceRGB) a zapíší se položky XMP namespace pdfaid:part/pdfaid:conformance. Knihovna navíc aktivuje guard souladu na straně generování, který odmítne následná volání, jež by vypsala obsah zakázaný zvolenou částí (viz Poznámky)
Call this once on a freshly created document and before adding any content. To validate an existing PDF/A file produced by this or any other library, use CheckFileCompliance with ComplianceTest = 1.
Syntaxe
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
Parametry
| NewMode | The PDF/A conformance mode to activate. Each mode is identified by a PDF/A part (1, 2, 3, or 4 — ISO 19005-1/-2/-3/-4) and a conformance level (B for basic visual reproduction, A for tagged-PDF accessibility). 0 — Disable PDF/A mode (default). 1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. Tagged PDF required. 2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Visual reproduction only. 3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Visual reproduction; transparency and layers permitted. 4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. Tagged PDF required. 5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Like PDF/A-2b but allows arbitrary embedded files. 6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Like PDF/A-2a but allows arbitrary embedded files. 7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Like PDF/A-3b but declares that text should have Unicode mappings. 8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Like PDF/A-2b but declares that text should have Unicode mappings; embedded files stay forbidden. 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identified by part and revision year rather than by a conformance level; text needs Unicode mappings and tagging is not required. 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Like PDF/A-4 and additionally permits 3D and rich media for engineering documents. 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Like PDF/A-4 and additionally permits an embedded file of any format. |
|---|
Návratové hodnoty
| 0 | Failed — no document is open, or NewMode is outside the range 0–7. |
|---|---|
| 1 | PDF/A mode activated successfully. |
Poznámky
Zvolený režim řídí guard shody na straně generování. Jakmile se aktivuje, knihovna odmítne nebo přepíše následná volání, jež by vypsala obsah zakázaný danou částí, v souladu s ISO 19005:
| CMYK / Separation / Shader colors | Blocked in every PDF/A mode (1–7) — the document is set up with an sRGB output intent and only colors compatible with the output intent's device class may be used. |
|---|---|
| Encryption | Ve všech režimech PDF/A blokováno. Režim nastavte před voláním jakéhokoli šifrovacího API |
| Transparency / blend modes / page transparency groups | Blocked in modes 1 and 2 (PDF/A-1 forbids transparency). Allowed in modes 3–7 (PDF/A-2/3 permit transparency). |
| JavaScript actions | Blocked in every PDF/A mode — ISO 19005-1 §6.6.1 prohibits JavaScript and the prohibition is carried forward in PDF/A-2/3. |
| Embedded files / file attachments | Blocked in modes 1–4 (PDF/A-1 forbids them; PDF/A-2 only allows PDF/A-conformant embedded PDFs, which the library does not enforce). Allowed in modes 5, 6, and 7 — PDF/A-3 explicitly permits embedded files of any MIME type via the AFRelationship association. |
Vyžadovaný obsah tagovaného PDF (struktura záhlaví, alt text u obrázků, atributy rozsahu tabulek, položky RoleMap pro vlastní typy) je na volajícím u úrovní a (režimy 1, 4, 6). Strukturní strom stavějte přes BeginTag, BeginArtifact, AddRoleMap a settery strukturních elementů. Před uložením zavolejte GetPDFUADiagnostics, aby se odhalily nejčastější problémy tagovaného PDF. U úrovně u (režim 7) zajistěte, aby fontové zdroje dokumentu poskytovaly Unicode mapování textu pro veškerý vykreslovaný text
PDF/A a PDF/UA lze aktivovat na témže dokumentu. Nejprve aktivujte SetPDFAMode (části 1a/2a/3a už samy implikují tagované PDF) a pak zavolejte SetPDFUAMode, která přidá nastavení katalogu specifické pro PDF/UA (DisplayDocTitle, pdfuaid:part, automatické /Tabs /S)
Příklad
// 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');Viz také
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation