SetPDFAMode
Propriétés du document, conformité
Description
Active un mode de conformité PDF/A pour le document sélectionné. Un seul appel effectue toute la configuration requise par la partie et le niveau choisis : élévation de la version PDF au minimum requis, écriture de /MarkInfo pour le niveau A avec balisage, ajout au Catalog d’un OutputIntent (profil ICC sRGB DeviceRGB) et écriture des entrées XMP pdfaid:part/pdfaid:conformance. La bibliothèque active aussi un garde de génération qui refuse les appels ultérieurs produisant du contenu interdit par la partie choisie (voir Remarks)
Appelez cette fonction une fois sur un document nouvellement créé, avant d’ajouter du contenu. Pour valider un fichier PDF/A existant produit par cette bibliothèque ou une autre, utilisez CheckFileCompliance avec 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);
Paramètres
| NewMode | Mode de conformité PDF/A à activer, identifié par une part (1, 2, 3 ou 4 — ISO 19005-1/-2/-3/-4) et un conformance level (B pour le rendu visuel, A pour l’accessibilité balisée). 0 — Désactiver PDF/A (par défaut). 1 — PDF/A-1a (ISO 19005-1 Level A), PDF 1.4 balisé. 2 — PDF/A-1b (ISO 19005-1 Level B), rendu visuel PDF 1.4. 3 — PDF/A-2b (ISO 19005-2 Level B), PDF 1.7 avec transparence et calques. 4 — PDF/A-2a (ISO 19005-2 Level A), PDF 1.7 balisé. 5 — PDF/A-3b (ISO 19005-3 Level B), comme PDF/A-2b avec fichiers incorporés arbitraires. 6 — PDF/A-3a (ISO 19005-3 Level A), comme PDF/A-2a avec fichiers incorporés arbitraires. 7 — PDF/A-3u (ISO 19005-3 Level U), comme PDF/A-3b avec mappages Unicode du texte. 8 — PDF/A-2u (ISO 19005-2 Level U), comme PDF/A-2b avec mappages Unicode, sans fichiers incorporés. 9 — PDF/A-4 (ISO 19005-4), PDF 2.0 identifié par partie et année de révision, mappages Unicode requis, balisage facultatif. 10 — PDF/A-4e (ISO 19005-4), comme PDF/A-4 avec 3D et médias enrichis pour l’ingénierie. 11 — PDF/A-4f (ISO 19005-4), comme PDF/A-4 avec fichier incorporé de tout format |
|---|
Valeurs de retour
| 0 | Échec — aucun document n'est ouvert, ou NewMode se trouve hors de la plage 0 à 11 |
|---|---|
| 1 | Le mode PDF/A a été activé |
Remarques
Le mode choisi contrôle une garde de conformité lors de la génération. Une fois activée, la bibliothèque refuse ou réécrit les appels suivants qui émettraient du contenu interdit par la partie, conformément à ISO 19005 :
| CMYK / Separation / Shader colors | Bloqué dans tous les modes PDF/A (1 à 11) — le document est configuré avec une intention de sortie sRGB et seules les couleurs compatibles avec la classe de périphérique de cette intention peuvent être utilisées |
|---|---|
| Encryption | Bloqué dans tous les modes PDF/A Définissez le mode avant d'appeler une API liée au chiffrement |
| Transparency / blend modes / page transparency groups | Bloqué dans les modes 1 et 2 (PDF/A-1 interdit la transparence) Autorisé dans les modes 3 à 11 (PDF/A-2, -3 et -4 autorisent la transparence) |
| JavaScript actions | Bloqué dans tous les modes PDF/A — ISO 19005-1 §6.6.1 interdit JavaScript et cette interdiction est reconduite dans PDF/A-2/3 |
| Embedded files / file attachments | Bloqué dans les modes 1 à 4 (PDF/A-1 les interdit ; PDF/A-2 autorise uniquement les PDF incorporés conformes à PDF/A, ce que la bibliothèque n'impose pas) Autorisé dans les modes 5, 6, 7, 9, 10 et 11 PDF/A-3 autorise les fichiers incorporés de tout type MIME au moyen de l'association AFRelationship, et PDF/A-4 reprend cette possibilité ; dans un PDF/A-4 ordinaire, le fichier incorporé doit lui-même être conforme à PDF/A, contrainte levée par PDF/A-4f |
Le contenu PDF balisé requis (structure des titres, texte alternatif des figures, attributs d’étendue des tableaux et entrées RoleMap des types personnalisés) relève de l’appelant pour les niveaux a (modes 1, 4 et 6). Utilisez BeginTag, BeginArtifact, AddRoleMap et les setters d’éléments de structure pour construire l’arbre. Appelez GetPDFUADiagnostics avant l’enregistrement pour révéler les problèmes courants. Pour le niveau u (mode 7), vérifiez que les ressources de police fournissent des mappages Unicode pour tout le texte rendu
PDF/A et PDF/UA peuvent être activés sur le même document. Activez d’abord SetPDFAMode (les parties 1a/2a/3a impliquent déjà un PDF balisé), puis appelez SetPDFUAMode pour ajouter la configuration propre à PDF/UA (DisplayDocTitle, pdfuaid:part, /Tabs /S automatique)
Exemple
// 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');Voir aussi
CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation