Comment convertir un PDF en PDF/A en C# en utilisant IronPDF

Comment exporter des documents au format PDF/A, PDF/A-3 ou PDF/A-4 en C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF prend en charge l'exportation de fichiers PDF aux normes PDF/A-3b et PDF/A-4 . PDF/A-3B est un sous-ensemble strict de la spécification ISO PDF utilisé pour créer des versions archivistiques de documents avec l'intention qu'ils s'affichent toujours exactement de la même manière que lorsqu'ils ont été enregistrés. Le format PDF/A-4 est la norme de conformité la plus récente, offrant une prise en charge améliorée des signatures numériques.

Conformité Section 508

IronPDF s'inscrit dans le cadre de l'initiative de Google visant à accroître l'archivage et l'accessibilité des fichiers PDF en vue de leur mise en conformité avec la section 508. Lorsque vous travaillez avec conversion de HTML en PDF, notre moteur de rendu préserve toutes les fonctionnalités d'accessibilité.

En 2021, nous sommes passés au rendu de PDF à partir de HTML en utilisant le moteur de rendu HTML de Google Chromium. Cela permet à notre logiciel d'hériter des travaux d'accessibilité que Google a déjà mis en œuvre.

Pourquoi la conformité à la section 508 est-elle importante pour les documents PDF/A ?

La conformité à la section 508 garantit que les documents PDF sont accessibles aux personnes handicapées utilisant des technologies d'assistance telles que les lecteurs d'écran. Les documents PDF/A conformes aux normes de la section 508 garantissent l'accessibilité du contenu pendant toute la durée de vie de l'archive. Cette conformité est essentielle pour les agences gouvernementales, les établissements d'enseignement et les organisations offrant un accès égal à l'information à tous les utilisateurs.


Quelles sont les versions PDF/A prises en charge par IronPDF ?

IronPDF prend en charge les niveaux de conformité A et B. 'A' représente 'accessible' et 'B' représente 'basique'. Ces niveaux sont disponibles pour les normes PDF/A-1, PDF/A-2 et PDF/A-3. Les informations ci-dessous sont tirées de la documentation d'Adobe sur le PDF/A. Par défaut, la sortie PDF générée par IronPDF est de type PDF/A-3B (ISO 19005-3).

  • <La conformité de niveau A répond à toutes les exigences de la spécification, ce qui permet aux logiciels d'assistance d'améliorer l'accessibilité pour les utilisateurs souffrant d'un handicap physique.
  • le Niveau B a une conformité plus faible avec une conformité minimale, se concentrant sur la préservation de l'apparence visuelle à long terme.

Quelles sont les différences entre PDF/A-1, PDF/A-2 et PDF/A-3 ?

PDF/A-1 : Basé sur la version originale PDF 1.4.

PDF/A-2 : Publié en juillet 2011 en tant que norme ISO 32001-1, comprend toutes les fonctionnalités des versions PDF jusqu'à 1.7 plus de nouvelles fonctionnalités. Prise en charge de JPEG2000 pour les documents numérisés et exigences spécifiques pour les métadonnées XMP personnalisées. Lorsque vous travaillez avec des métadonnées PDF, IronPDF garantit un traitement correct des métadonnées XMP.

PDF/A-3 : comprend toutes les exigences du niveau 2. Permet d'incorporer des formats de fichiers supplémentaires - XML, CSV et formats de traitement de texte - dans des documents conformes à la norme PDF/A.

PDF/A-4 : Dernière version de la norme de conformité PDF/A, publiée en 2020. Basée sur PDF 2.0, elle offre des fonctionnalités améliorées, notamment une meilleure prise en charge des signatures numériques par rapport à PDF/A-3. Cette version est particulièrement adaptée aux documents d'ingénierie et aux flux de travail techniques impliquant des modèles 3D et d'autres éléments complexes.

Caractéristique PDF/A-3 PDF/A-4
Version PDF de base PDF 1.7 PDF 2.0
Pièces jointes intégrées Pris en charge Non pris en charge
Signatures numériques Pris en charge Soutien amélioré
Cas d'utilisation optimal Factures, intégration de données XML Ingénierie, modélisation 3D, flux de travail techniques

Veuillez noterIronPdf ne prend pas encore en charge la conversion d'un PDF avec un fichier joint en PDF/A-3B.

Conversion au format PDF/A4 le plus récent

PDF/A-4 est la dernière norme de conformité de la série PDF/A. Il est considéré comme le meilleur format d'archivage pour une large gamme de types de documents, notamment ceux impliquant des signatures numériques. Ce format interdit le chiffrement et les éléments multimédias, garantissant ainsi que chaque fichier reste totalement autonome.

Convertir un fichier existant au format PDF/A-4 est simple.

:path=/static-assets/pdf/content-code-examples/how-to/sample-pdfa4.cs
using IronPdf;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Save as PDF/A-4 compliant document
pdf.SaveAsPdfA("pdfa4-output.pdf", PdfAVersions.PdfA4);
$vbLabelText   $csharpLabel

À partir d'un fichier PDF existant (PDF/A-3B)

J'ai un exemple de PDF "wikipedia.pdf" généré à l'aide d'IronPDF et enregistré en tant que fichier PDF. Pour des résultats optimaux, assurez-vous d'avoir configuré vos clés de licence correctement avant de commencer la conversion.

Dans cette démonstration, je vais le charger et le réenregistrer en tant que fichier PDF conforme à la norme PDF/A-3B, puis créer une autre copie au format PDF/A-4 (pour démontrer la compatibilité avec la dernière norme de conformité).

À quoi ressemble le PDF d'entrée avant la conversion?

Quel est le code qui convertit les PDF existants au format PDF/A?

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromfile.cs
using IronPdf;

// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

Comment puis-je vérifier que la conversion PDF/A a réussi ?

Le fichier de sortie est conforme à la norme PDF/A-3b :

veraPDF Conformance Checker montrant une validation PDF/A-3B réussie avec un message de conformité vert

À partir d'un modèle HTML ou d'une URL (PDF/A-3B)

J'ai un exemple de conception HTML "design.html" à rendre de HTML à PDF à l'aide d'IronPDF et à exporter en tant que fichier conforme à PDF/A. Le processus de conversion d'un fichier HTML en PDF conserve tous les styles et formats pendant la conversion.

Je vais l'enregistrer en tant que fichier PDF conforme PDF/A-3B dans cette démonstration.

Comment convertir des fichiers HTML au format PDF/A?

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromhtml.cs
using IronPdf;

// Use the Chrome Renderer to make beautiful HTML designs
var chromeRenderer = new ChromePdfRenderer();

// Render an HTML design as a PdfDocument object using Chrome
PdfDocument pdf = chromeRenderer.RenderHtmlAsPdf("design.html");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("design-accessible.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

Le fichier de sortie est conforme à la norme PDF/A-3B :

veraPDF Conformance Checker montrant une validation PDF réussie avec un message de conformité vert

Comment convertir des sites web au format PDF/A?

J'ai le site web "https://www.microsoft.com" à rendre de l'URL au PDF à l'aide d'IronPDF et à exporter en tant que fichier conforme à PDF/A. La fonction conversion d'URL en PDF garantit que tout le contenu web, y compris JavaScript et CSS, est correctement rendu.

Je vais l'enregistrer en tant que fichier PDF conforme PDF/A-3B dans cette démonstration.

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-fromurl.cs
using IronPdf;

// Use the Chrome Renderer to make beautiful HTML designs from URLs
var chromeRenderer = new ChromePdfRenderer();

// Render a Website as a PdfDocument object using Chrome
PdfDocument pdf = chromeRenderer.RenderUrlAsPdf("https://www.microsoft.com");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("website-accessible.pdf", PdfAVersions.PdfA3b);
$vbLabelText   $csharpLabel

Le fichier de sortie est conforme à la norme PDF/A-3B :

veraPDF Conformance Checker montrant une validation PDF/A-3B réussie avec un message de conformité vert et des options de rapport


Prise en charge de l'intégration de pièces jointes (PDF/A-3B)

IronPDF permet d'intégrer des fichiers dans des documents PDF tout en les convertissant au format PDF/A. Pour ce faire, il est possible d'utiliser des chemins d'accès aux fichiers, des tableaux d'octets ou des flux. Cette fonction permet de créer des documents d'archives autonomes qui incluent tous les documents d'appui nécessaires. Pour des fonctionnalités de manipulation de PDF plus avancées, consultez notre tutoriel complet d'édition de PDF.

Veuillez noterRemarque : les pièces jointes intégrées sont prises en charge uniquement au format PDF/A-3B. Le format PDF/A4 ne prend pas en charge les pièces jointes intégrées.

Intégrer avec des chemins de fichiers

Incorporez les fichiers en utilisant leur chemin d'accès. Un ensemble de chemins d'accès aux fichiers est fourni, et ces fichiers sont inclus en tant que pièces jointes lors de la conversion PDF/A.

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-path.cs
using IronPdf;
using System.Collections.Generic;

PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as string of path
IEnumerable<string> embedPaths = new[] { "File1.xml", "File2.png" };

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedPaths);
$vbLabelText   $csharpLabel

Comment intégrer des fichiers à l'aide de tableaux d'octets ?

Intégrer des fichiers en fournissant le contenu des fichiers sous forme de tableaux d'octets avec leurs types de fichiers respectifs. Utile lorsque les fichiers sont déjà chargés en mémoire.

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-byte.cs
using IronPdf;
using System.Collections.Generic;
using System.IO;


PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as Bytes and their file type
byte[] fileData1 = File.ReadAllBytes("File1.png");
byte[] fileData2 = File.ReadAllBytes("File2.xml");

var embedFileConfig1 = new EmbedFileConfiguration(EmbedFileType.png);
embedFileConfig1.EmbedFileName = "logo.png";

var embedFileConfig2 = new EmbedFileConfiguration(EmbedFileType.xml)
{
    EmbedFileName = "supportSystem.xml",
    AFDesc = "Internal system",
    ConformanceLevel = ConformanceLevel.XRECHNUNG,
    SchemaNamespace = SchemaNamespace.Zugferd1,
    SchemaPrefix = SchemaPrefix.rsm,
    PropertyVersion = PropertyVersion.v1p0,
    AFRelationship = AFRelationship.Supplement,
};

IEnumerable<EmbedFileByte> embedBytes = new[]
{
    new EmbedFileByte(fileData1, embedFileConfig1),
    new EmbedFileByte(fileData2, embedFileConfig2)
};

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedBytes).SaveAs("PdfACompliance.pdf");
$vbLabelText   $csharpLabel

Comment intégrer des fichiers à l'aide de flux ?

Incorporer des fichiers à l'aide de flux pour le contenu avec leurs types de fichiers. Idéal lorsque les données d'un fichier sont traitées sous forme de flux.

:path=/static-assets/pdf/content-code-examples/how-to/pdfa-attachment-stream.cs
using IronPdf;
using System.Collections.Generic;
using System.IO;

PdfDocument pdf = new PdfDocument("Google.pdf");

// Initialize collection of embed file as Stream and their file type
Stream stream1 = new MemoryStream(File.ReadAllBytes("File1.png"));
Stream stream2 = new MemoryStream(File.ReadAllBytes("File2.xml"));

var embedFileConfig1 = new EmbedFileConfiguration(EmbedFileType.png);
embedFileConfig1.EmbedFileName = "logo.png";

var embedFileConfig2 = new EmbedFileConfiguration(EmbedFileType.xml)
{
    EmbedFileName = "supportSystem.xml",
    AFDesc = "Internal system",
    ConformanceLevel = ConformanceLevel.XRECHNUNG,
    SchemaNamespace = SchemaNamespace.Zugferd1,
    SchemaPrefix = SchemaPrefix.rsm,
    PropertyVersion = PropertyVersion.v1p0,
    AFRelationship = AFRelationship.Supplement,
};

IEnumerable<EmbedFileStream> embedStreams = new[]
{
    new EmbedFileStream(stream1, embedFileConfig1),
    new EmbedFileStream(stream2, embedFileConfig2)
};

// Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedStreams).SaveAs("PdfACompliance.pdf");
$vbLabelText   $csharpLabel

Comment configurer les propriétés des fichiers intégrés avec EmbedFileConfiguration?

Lors de la conversion d'un PdfDocument au format PDF/A-3 contenant des fichiers intégrés, il est important de configurer des paramètres tels que EmbedFilePath, EmbedFileByte ou EmbedFileStream. Ces paramètres vous permettent de spécifier le type de fichier intégré, son nom, et toutes les métadonnées XMP personnalisées que vous souhaitez inclure.

Une configuration adéquate permet de s'assurer que le contenu intégré est organisé efficacement et qu'il est conforme aux normes PDF/A-3. La personnalisation des métadonnées XMP permet d'obtenir des informations supplémentaires sur les fichiers incorporés, ce qui améliore la convivialité et l'accessibilité des documents. Grâce à la classe EmbedFileConfiguration, les développeurs peuvent facilement personnaliser les valeurs et les formats du fichier.

var config = new EmbedFileConfiguration
{
    EmbedFileName = "Attachment.xml",
    AFDesc = "Associated File Description",
    ConformanceLevel = ConformanceLevel.EN16931,
    SchemaNamespace = SchemaNamespace.facturX,
    SchemaPrefix = SchemaPrefix.fx,
    PropertyVersion = PropertyVersion.v1,
    AFRelationship = AFRelationship.Alternative
};

 // Load a PDF document
 var document = PdfDocument.FromFile("wikipedia.pdf");

 // Configure embedded file parameters
 document.EmbedFileFromFilePath("path/to/attachment", config);

 // Save the document as PDF/A-3b
 document.SaveAsPdfA3B("output-with-configured-attachment.pdf");
var config = new EmbedFileConfiguration
{
    EmbedFileName = "Attachment.xml",
    AFDesc = "Associated File Description",
    ConformanceLevel = ConformanceLevel.EN16931,
    SchemaNamespace = SchemaNamespace.facturX,
    SchemaPrefix = SchemaPrefix.fx,
    PropertyVersion = PropertyVersion.v1,
    AFRelationship = AFRelationship.Alternative
};

 // Load a PDF document
 var document = PdfDocument.FromFile("wikipedia.pdf");

 // Configure embedded file parameters
 document.EmbedFileFromFilePath("path/to/attachment", config);

 // Save the document as PDF/A-3b
 document.SaveAsPdfA3B("output-with-configured-attachment.pdf");
$vbLabelText   $csharpLabel
  • EmbedFileName : Une propriété string représentant le nom du fichier incorporé dans le document PDF/A. La valeur par défaut est une chaîne vide.
  • AFDesc : Une propriété string représentant la description du fichier associé pour le fichier incorporé. La valeur par défaut est une chaîne vide.
  • ConformanceLevel : le niveau de conformité de l'intégration des fichiers XML s'appliquant aux métadonnées XMP du document PDF/A. Le niveau de conformité par défaut est ConformanceLevel.EN16931. IronPDF fournit différentes valeurs via l'énumération ConformanceLevel.
  • SchemaNamespace : L'espace de nommage du schéma PDF/A qui intègre les fichiers XML et s'applique aux métadonnées XMP du document PDF/A. La valeur par défaut est SchemaNamespace.facturX, avec diverses options disponibles dans l'énumération SchemaNamespace.
  • SchemaPrefix : Le préfixe de schéma PDF/A pour intégrer des fichiers XML s'appliquant aux métadonnées XMP du document PDF/A. La valeur par défaut est SchemaPrefix.fx, avec plusieurs options dans l'énumération SchemaPrefix.
  • PropertyVersion : La version de la propriété des fichiers XML d'intégration appliquée aux métadonnées XMP du document PDF/A. La version par défaut est PropertyVersion.v1, avec plusieurs options dans l'énumération PropertyVersion.
  • AFRelationship : La relation du fichier associé (fichier intégré) au document PDF/A. Plusieurs options sont disponibles dans l'énumération AFRelationship.

Qu'est-ce qui cause les problèmes d'affichage des caractères dans le PDF/A?

La norme PDF/A exige que tous les caractères du document correspondent à une police de caractères visuellement et sémantiquement correcte. Bien que toutes les polices ne doivent pas être intégrées, la police utilisée doit prendre en charge les glyphes requis. Si une police incorrecte ou incomplète est utilisée, certains caractères peuvent apparaître brisés, manquants ou mal rendus, en particulier dans les langues comportant des scripts ou des symboles spéciaux. Pour les considérations relatives à l'optimisation de la taille des fichiers, explorez notre guide de compression IronPdf pour équilibrer l'intégration des polices avec la taille des fichiers.

Pourquoi certains caractères apparaissent-ils brisés dans les documents PDF/A?

Par exemple, dans le problème ci-dessous, l'exemple du haut utilise la bonne police et affiche correctement les caractères, tandis que l'exemple du bas ne les affiche pas correctement en raison d'une incompatibilité des polices.

Comparaison d'encodage de caractères montrant une corruption de police dans la conversion PDF/A de DejaVuSans et Times New Roman

À partir d'un fichier PDF existant (PDF/A-4)

J'ai un exemple de PDF, " who.pdf ", qui contient la Stratégie mondiale de santé de l'Organisation mondiale de la santé pour 2025-2028. Ce document a été généré à l'aide d'IronPDF et enregistré au format PDF standard.

Dans cette démonstration, je vais le charger et le réenregistrer en tant que fichier PDF conforme au format PDF/A4, garantissant ainsi la conformité de l'archivage à long terme de cet important document de santé mondiale.

Fichier d'entrée : " who.pdf "

Code

:path=/static-assets/pdf/content-code-examples/how-to/save-as-pdfa4.cs
using IronPdf;

// Load the environmental impact assessment document
PdfDocument pdf = PdfDocument.FromFile("ENV-2026-1847-Assessment-Report.pdf");

// Save as PDF/A-4 compliant document for long-term archival
pdf.SaveAsPdfA("ENV-2026-1847-Report-PDFA4Compliant.pdf", PdfAVersions.PdfA4);
$vbLabelText   $csharpLabel

Sortie

Le fichier de sortie est conforme au format PDF/A4 :

! Licence complète

Prêt à voir ce que vous pouvez faire d'autre? Consultez notre page de tutoriel ici : Créer des PDF

Questions Fréquemment Posées

Comment convertir un PDF standard au format PDF/A-3b en C# ?

Avec IronPDF, vous pouvez convertir n'importe quel PDF standard au format PDF/A-3b en utilisant seulement deux lignes de code. Il vous suffit de charger votre PDF à l'aide de PdfDocument.FromFile(), puis d'appeler SaveAsPdfA() pour l'exporter en tant que document conforme au format PDF/A-3b en vue d'un archivage à long terme.

Qu'est-ce que le PDF/A-3b et pourquoi est-il important pour l'archivage des documents ?

PDF/A-3b est un sous-ensemble strict de la spécification ISO PDF conçu pour la conservation à long terme des documents. IronPDF prend en charge l'exportation PDF/A-3b pour s'assurer que vos documents sont toujours restitués exactement tels qu'ils ont été enregistrés, ce qui en fait un outil idéal à des fins juridiques, gouvernementales et d'archivage où l'intégrité des documents est essentielle.

La conversion PDF/A est-elle conforme à l'article 508 sur l'accessibilité ?

Oui, IronPDF garantit la conformité à la section 508 en utilisant le moteur de rendu de Google Chromium, qui hérite des fonctionnalités d'accessibilité de Google. Cela signifie que vos documents PDF/A seront accessibles aux utilisateurs handicapés qui utilisent des technologies d'assistance telles que les lecteurs d'écran.

Puis-je convertir du contenu HTML directement au format PDF/A ?

Absolument ! IronPDF vous permet de convertir du contenu HTML ou des URL directement au format PDF/A-3b. Le moteur de rendu Google Chromium préserve toutes les caractéristiques d'accessibilité lors de la conversion de HTML en PDF, ce qui garantit la conformité totale des documents PDF/A qui en résultent.

Quels sont les principaux avantages de l'utilisation du format PDF/A-3b par rapport au format PDF standard ?

L'exportation PDF/A-3b d'IronPDF garantit une conservation à long terme, un rendu cohérent sur tous les visualiseurs, la conformité à la section 508 sur l'accessibilité et le respect des normes d'archivage ISO. Il est donc parfait pour les documents juridiques, les dossiers gouvernementaux et tout contenu nécessitant un archivage permanent.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 17,012,929 | Version : 2025.12 vient de sortir