SetPDFAMode
Dokumentegenskaber, Overensstemmelse
Beskrivelse
Aktiverer en PDF/A-overensstemmelsestilstand for det valgte dokument. Et enkelt kald udfører hele den dokumentopsætning, der kræves af den valgte PDF/A-del og det valgte overensstemmelsesniveau: PDF-versionen hæves til det krævede minimum, posten /MarkInfo skrives, når overensstemmelsesniveauet for mærket PDF (A) er valgt, en outputintention (DeviceRGB sRGB ICC-profil) tilføjes kataloget, og XMP-namespaceposterne pdfaid:part/pdfaid:conformance skrives. Biblioteket aktiverer også en overensstemmelseskontrol på genereringssiden, der afviser efterfølgende kald, som ville udsende indhold, der er forbudt af den valgte del (se Bemærkninger).
Kald denne én gang på et nyoprettet dokument og før tilføjelse af indhold. Brug CheckFileCompliance med ComplianceTest = 1 til at validere en eksisterende PDF/A-fil, der er oprettet af dette eller et andet bibliotek.
Syntaks
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
Parametre
| NewMode | Den PDF/A-overensstemmelsestilstand, der skal aktiveres. Hver tilstand identificeres af en PDF/A-part (1, 2, 3 eller 4 — ISO 19005-1/-2/-3/-4) og et conformance level (B for grundlæggende visuel gengivelse, A for tagged PDF-tilgængelighed). 0 — Deaktiver PDF/A-tilstand (standard). 1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. Tagged PDF kræves. 2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Kun visuel gengivelse. 3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Visuel gengivelse; gennemsigtighed og lag er tilladt. 4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. Tagged PDF kræves. 5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Som PDF/A-2b, men tillader vilkårlige integrerede filer. 6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Som PDF/A-2a, men tillader vilkårlige integrerede filer. 7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Som PDF/A-3b, men erklærer, at tekst skal have Unicode-tilknytninger. 8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Som PDF/A-2b, men erklærer, at tekst skal have Unicode-tilknytninger; integrerede filer er fortsat forbudt. 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Identificeres af del og revisionsår i stedet for et overensstemmelsesniveau; tekst kræver Unicode-tilknytninger, og tagging er ikke påkrævet. 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Som PDF/A-4 og tillader desuden 3D og rich media til tekniske dokumenter. 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Som PDF/A-4 og tillader desuden en integreret fil i ethvert format |
|---|
Returværdier
| 0 | Mislykkedes — intet dokument er åbent, eller NewMode is outside the range 0–7. |
|---|---|
| 1 | PDF/A-tilstand blev aktiveret. |
Bemærkninger
Den valgte tilstand styrer en overensstemmelseskontrol under generering. Når den er aktiveret, afviser eller omskriver biblioteket efterfølgende kald, der ville udsende indhold, som delen forbyder, i overensstemmelse med ISO 19005:
| CMYK / Separation / Shader colors | Blokeret i alle PDF/A-tilstande (1–7) — dokumentet er konfigureret med en sRGB-output intent, og kun farver, der er kompatible med output intent-profilens enhedsklasse, må bruges |
|---|---|
| Encryption | Blokeret i alle PDF/A-tilstande. Angiv tilstanden før kald til krypteringsrelaterede API'er. |
| Transparency / blend modes / page transparency groups | Blokeret i tilstand 1 og 2 (PDF/A-1 forbyder transparens). Tilladt i tilstand 3–7 (PDF/A-2/3 tillader transparens) |
| JavaScript actions | Blokeret i alle PDF/A-tilstande — ISO 19005-1 §6.6.1 forbyder JavaScript, og forbuddet videreføres i PDF/A-2/3. |
| Embedded files / file attachments | Blokeret i tilstand 1–4 (PDF/A-1 forbyder dem; PDF/A-2 tillader kun indlejrede PDF'er, der overholder PDF/A, hvilket biblioteket ikke håndhæver). Tilladt i tilstand 5, 6 og 7 — PDF/A-3 tillader udtrykkeligt indlejrede filer af enhver MIME-type via AFRelationship association. |
Det påkrævede indhold i mærket PDF (overskriftsstruktur, alternativ tekst til figurer, Scope-attributter for tabeller og RoleMap-poster for brugerdefinerede typer) er kalderens ansvar for a-niveauerne (tilstand 1, 4 og 6). Brug BeginTag, BeginArtifact, AddRoleMap og setterne til strukturelementer til at opbygge strukturtræet. Kald GetPDFUADiagnostics før lagring for at vise de mest almindelige problemer med mærket PDF. For u-niveauet (tilstand 7) skal du sikre, at dokumentets skrifttyperessourcer leverer Unicode-teksttilknytninger for al gengivet tekst.
PDF/A og PDF/UA kan aktiveres i samme dokument. Aktivér først SetPDFAMode (delene 1a/2a/3a indebærer allerede tagget PDF), og kald derefter SetPDFUAMode for at tilføje den PDF/UA-specifikke katalogopsætning (DisplayDocTitle, pdfuaid:part, automatisk /Tabs /S).
Eksempel
// 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 også
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation