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

NewModeMode 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
1Le 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 colorsBloqué 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
EncryptionBloqué dans tous les modes PDF/A Définissez le mode avant d'appeler une API liée au chiffrement
Transparency / blend modes / page transparency groupsBloqué 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 actionsBloqué 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 attachmentsBloqué 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