SetPDFAMode
Documenteigenschappen, Naleving
Beschrijving
Activeert een PDF/A-conformiteitsmodus voor het geselecteerde document. Eén aanroep voert alle setup op documentniveau uit die het gekozen PDF/A-deel en conformit niveau vereist: de PDF-versie wordt verhoogd naar het vereiste minimum, de /MarkInfo-entry wordt weggeschreven wanneer het tagged PDF-conformit niveau (A) is gekozen, een output intent (DeviceRGB sRGB ICC-profiel) wordt aan de Catalog toegevoegd, en de pdfaid:part/pdfaid:conformance-XMP-namespace-entries worden weggeschreven. De library activeert ook een generatiezijdige compliance-bewaking die volgende aanroepen weigert die inhoud zouden uitgeven die het gekozen deel verbiedt (zie Opmerkingen)
Roep dit één keer aan op een zojuist gemaakt document en vóór het toevoegen van inhoud. Gebruik CheckFileCompliance met ComplianceTest = 1 om een bestaand PDF/A-bestand te valideren dat door deze of een andere library is gemaakt
Syntaxis
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
Parameters
| NewMode | De te activeren PDF/A-conformiteitsmodus. Elke modus wordt geïdentificeerd door een PDF/A deel (1, 2, 3 of 4 — ISO 19005-1/-2/-3/-4) en een conformit niveau (B voor basisvisuele weergave, A voor tagged-PDF-toegankelijkheid). 0 — PDF/A-modus uitzetten (standaard) 1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. Tagged PDF vereist 2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Alleen visuele weergave 3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Visuele weergave; transparantie en lagen toegestaan 4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. Tagged PDF vereist 5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Zoals PDF/A-2b maar staat willekeurige ingesloten bestanden toe 6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Zoals PDF/A-2a maar staat willekeurige ingesloten bestanden toe 7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Zoals PDF/A-3b maar verklaart dat tekst Unicode-mappings moet hebben 8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Zoals PDF/A-2b maar verklaart dat tekst Unicode-mappings moet hebben; ingesloten bestanden blijven verboden 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Geïdentificeerd op deel en revisiejaar in plaats van op een conformit niveau; tekst heeft Unicode-mappings nodig en tagging is niet vereist 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Zoals PDF/A-4 en staat daarnaast 3D en rich media toe voor technische documenten 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Zoals PDF/A-4 en staat daarnaast een ingesloten bestand van elk formaat toe |
|---|
Retourwaarden
| 0 | Mislukt — er is geen document open, of NewMode valt buiten het bereik 0–7 |
|---|---|
| 1 | PDF/A mode activated successfully. |
Opmerkingen
De gekozen modus stuurt een generatiezijdige compliance-bewaking. Eenmaal geactiveerd weigert of herschrijft de library volgende aanroepen die inhoud zouden uitgeven die het deel verbiedt, conform ISO 19005:
| CMYK / Separation / Shader colors | Geblokkeerd in elke PDF/A-modus (1–7) — het document is ingericht met een sRGB-output intent en er mogen alleen kleuren worden gebruikt die compatibel zijn met de device class van die output intent |
|---|---|
| Encryption | Geblokkeerd in elke PDF/A-modus. Zet de modus vóórdat u een versleutelingsgerelateerde API aanroept |
| Transparency / blend modes / page transparency groups | Geblokkeerd in modi 1 en 2 (PDF/A-1 staat transparantie niet toe). Toegestaan in modi 3–7 (PDF/A-2/3 staan transparantie toe). |
| JavaScript actions | Geblokkeerd in elke PDF/A-modus — ISO 19005-1 §6.6.1 verbiedt JavaScript en dat verbod geldt door in PDF/A-2/3 |
| Embedded files / file attachments | Geblokkeerd in modi 1–4 (PDF/A-1 verbiedt ze; PDF/A-2 staat alleen PDF/A-conformerende ingesloten PDF's toe, wat de library niet afdwingt) Toegestaan in modi 5, 6 en 7 — PDF/A-3 staat ingesloten bestanden van elk MIME-type expliciet toe via de AFRelationship-associatie |
De vereiste tagged-PDF-inhoud (kopstructuur, alt-tekst bij figuren, tabelscope-attributen, RoleMap-entries voor custom types) is de verantwoordelijkheid van de aanroeper voor de a-niveaus (modi 1, 4, 6). Gebruik BeginTag, BeginArtifact, AddRoleMap en de structuurelementsetters om de structuurboom op te bouwen. Roep GetPDFUADiagnostics aan vóór het opslaan om de meest voorkomende tagged-PDF-bevindingen aan het licht te brengen. Voor het u-niveau (modus 7) geldt: zorg dat de fontresources van het document Unicode-tekstmappings bieden voor alle gerenderde tekst
PDF/A en PDF/UA kunnen op hetzelfde document worden geactiveerd. Activeer eerst SetPDFAMode (delen 1a/2a/3a impliceren al tagged PDF) en roep daarna SetPDFUAMode aan om de PDF/UA-specifieke catalogussetup toe te voegen (DisplayDocTitle, pdfuaid:part, automatische /Tabs /S)
Voorbeeld
// 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');Zie ook
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation