SetPDFAMode

Dokumentegenskaper, Efterlevnad

Beskrivning

Aktiverar ett PDF/A-efterlevnadsläge för det valda dokumentet. Ett enda anrop utför all dokumentnivåuppsättning som den valda PDF/A-delen och conformance-nivån kräver: PDF-versionen höjs till krävd minimum, /MarkInfo-posten skrivs när taggat-PDF-conformance-nivån (A) väljs, en output intent (DeviceRGB sRGB ICC-profil) läggs till Catalog:en, och pdfaid:part/pdfaid:conformance-XMP-namespace-posterna skrivs. Biblioteket aktiverar också en genereringssido-efterlevnadsbevakning som avvisar efterföljande anrop som skulle generera innehåll som den valda delen förbjuder (se Remarks)

Anropa detta en gång på ett nyskapat dokument och innan något innehåll läggs till. För att validera en befintlig PDF/A-fil producerad av detta eller annat bibliotek, använd CheckFileCompliance med 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);

Parametrar

NewModePDF/A-conformance-läget som ska aktiveras. Varje läge identifieras av en PDF/A-del (1, 2, 3 eller 4 — ISO 19005-1/-2/-3/-4) och en conformance-nivå (B för grundläggande visuell reproduktion, A för taggat-PDF-tillgänglighet)

0 — Inaktivera PDF/A-läget (standard)
1 — PDF/A-1a (ISO 19005-1 nivå A). PDF 1.4. Taggad PDF krävs
2 — PDF/A-1b (ISO 19005-1 nivå B). PDF 1.4. Endast visuell reproduktion
3 — PDF/A-2b (ISO 19005-2 nivå B). PDF 1.7. Visuell reproduktion; transparens och lager tillåtna
4 — PDF/A-2a (ISO 19005-2 nivå A). PDF 1.7. Taggad PDF krävs
5 — PDF/A-3b (ISO 19005-3 nivå B). PDF 1.7. Som PDF/A-2b men tillåter godtyckliga inbäddade filer
6 — PDF/A-3a (ISO 19005-3 nivå A). PDF 1.7. Som PDF/A-2a men tillåter godtyckliga inbäddade filer
7 — PDF/A-3u (ISO 19005-3 nivå U). PDF 1.7. Som PDF/A-3b men deklarerar att text ska ha Unicode-mappningar
8 — PDF/A-2u (ISO 19005-2 nivå U). PDF 1.7. Som PDF/A-2b men deklarerar att text ska ha Unicode-mappningar; inbäddade filer förblir förbjudna
9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identifieras av del och revisionsår i stället för en conformance-nivå; text behöver Unicode-mappningar och taggning krävs inte
10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Som PDF/A-4 och tillåter dessutom 3D och rich media för tekniska dokument
11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Som PDF/A-4 och tillåter dessutom en inbäddad fil av valfritt format

Returvärden

0Misslyckades — inget dokument är öppet, eller NewMode ligger utanför intervallet 0–11
1PDF/A mode activated successfully.

Anmärkningar

Det valda läget styr en genereringssido-efterlevnadsbevakning. När den väl är aktiverad vägrar eller skriver biblioteket om efterföljande anrop som skulle generera innehåll som delen förbjuder, i linje med ISO 19005:

CMYK / Separation / Shader colorsBlockerat i varje PDF/A-läge (1–11) — dokumentet sätts upp med en sRGB output intent och bara färger kompatibla med output intentens enhetsklass får användas
EncryptionBlockerat i varje PDF/A-läge. Sätt läget före du anropar något krypteringsrelaterat API
Transparency / blend modes / page transparency groupsBlockerat i lägena 1 och 2 (PDF/A-1 förbjuder transparens). Tillåtet i lägena 3–11 (PDF/A-2, -3 och -4 tillåter transparens)
JavaScript actionsBlockerat i varje PDF/A-läge — ISO 19005-1 §6.6.1 förbjuder JavaScript och förbudet förs vidare i PDF/A-2/3
Embedded files / file attachmentsBlockerat i lägena 1–4 (PDF/A-1 förbjuder dem; PDF/A-2 tillåter bara PDF/A-konforma inbäddade PDF:er, vilket biblioteket inte tvingar fram). Tillåtet i lägena 5, 6, 7, 9, 10 och 11. PDF/A-3 tillåter inbäddade filer av valfri MIME-typ via AFRelationship-kopplingen, och PDF/A-4 för vidare det; i vanlig PDF/A-4 måste den inbäddade filen i sig vara PDF/A-konform, vilket PDF/A-4f häver

Det krävda taggat-PDF-innehållet (rubrikstruktur, alt text på figurer, tabellomfattningsattribut, RoleMap-poster för anpassade typer) är anroparens ansvar på a-nivåerna (lägena 1, 4, 6). Använd BeginTag, BeginArtifact, AddRoleMap och strukturelementsettersna för att bygga strukturträdet. Anropa GetPDFUADiagnostics före sparning för att synliggöra de vanligaste taggat-PDF-problemen. På u-nivån (läge 7), se till att dokumentets typsnittsresurser tillhandahåller Unicode-textmappningar för all renderad text

PDF/A och PDF/UA kan aktiveras på samma dokument. Aktivera SetPDFAMode först (delarna 1a/2a/3a innebär redan taggad PDF) och anropa sedan SetPDFUAMode för att lägga till PDF/UA-specifik Catalog-uppsättning (DisplayDocTitle, pdfuaid:part, auto /Tabs /S)

Exempel

// 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');

Se även

CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation