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
| NewMode | PDF/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
| 0 | Misslyckades — inget dokument är öppet, eller NewMode ligger utanför intervallet 0–11 |
|---|---|
| 1 | PDF/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 colors | Blockerat 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 |
|---|---|
| Encryption | Blockerat i varje PDF/A-läge. Sätt läget före du anropar något krypteringsrelaterat API |
| Transparency / blend modes / page transparency groups | Blockerat 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 actions | Blockerat 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 attachments | Blockerat 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