Comment exporter des documents au format PDF/A ou PDF/A-3 en C
IronPDF prend en charge l'exportation des PDF vers la norme PDF/A-3b. PDF/A-3B est un sous-ensemble strict de la spécification ISO PDF utilisé pour créer des versions d'archives de documents dans le but de les rendre exactement identiques à la date à laquelle ils ont été sauvegardés.
Conformité à l'article 508
IronPDF est heureux de suivre l'initiative de Google visant à accroître l'archivage et l'accessibilité des PDF ainsi que la conformité des documents PDF à la section 508.
En 2021, nous avons commencé à générer des PDFs à partir de HTML en utilisant le moteur de rendu HTML Google Chromium. Cela permet à notre logiciel de bénéficier du travail sur l'accessibilité déjà mis en œuvre par Google :
Commencez avec IronPDF
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
Comment convertir un PDF en PDF/A en C#

- Téléchargez la bibliothèque C# pour créer des documents PDF/A
- Chargement d'un fichier existant ou création d'un PDF à partir d'un fichier, d'un HTML ou d'une URL
- Exporter un document PDF/A à partir d'un fichier PDF existant
- Exporter un document PDF/A à partir d'une conception HTML ou d'une URL
- Enregistrez le document conforme à la norme PDF/A à l'emplacement souhaité
Versions PDF/A
Les deux niveaux de conformité pris en charge par IronPDF sont A et B. la lettre "A" signifie "accessible" et la lettre "B" signifie "de base" Ces niveaux sont disponibles pour les normes PDF/A-1, PDF/A-2 et PDF/A-3. Les informations ci-dessous ont été extraites de la documentation d'Adobe sur le PDF/A.
- Niveau A de conformité respecte toutes les exigences de sa spécification, permettant aux logiciels d'assistance d'améliorer l'accessibilité pour les utilisateurs ayant un handicap physique.
-
Niveau B a un niveau de conformité inférieur, avec une conformité minimale, se concentrant sur la préservation de l'apparence visuelle du fichier à long terme.
PDF/A-1 : Le format PDF/A est basé sur la version originale PDF 1.4.
PDF/A-2 : Publié en juillet 2011 comme nouvelle norme appelée ISO 32001-1, cette norme inclut toutes les fonctionnalités des versions PDF jusqu'à 1.7 ainsi que de nouvelles fonctionnalités. Parmi ses caractéristiques, citons la prise en charge de JPEG2000, pratique pour les documents numérisés, et les exigences spécifiques en matière de métadonnées XMP personnalisées.
PDF/A-3 : Ce format PDF/A inclut toutes les exigences du niveau 2. Il permet également l'intégration de formats de fichiers supplémentaires—comme XML, CSV et des formats de traitement de texte—dans des documents conformes au PDF/A.
A noter
IronPdf ne prend pas encore en charge la conversion d'un PDF avec un fichier joint en PDF/A-3B.
À partir d'un fichier PDF existant
J'ai un exemple de PDF "wikipedia.pdf
", qui a été généré en utilisant IronPDF et enregistré sous forme de fichier PDF.
Dans cette démonstration, je vais le charger et le réenregistrer en tant que fichier PDF conforme à la norme PDF/A-3B.
Fichier d'entrée : "wikipedia.pdf"
Code
: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);
Imports IronPdf
' Create a PdfDocument object or open any PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("wikipedia.pdf")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3b)
Sortie
Le fichier de sortie est conforme à la norme PDF/A-3b :
À partir d'un design HTML ou d'une URL
J'ai un exemple de design HTML "design.html
," que je souhaite rendre de HTML en PDF en utilisant IronPDF, puis exporter sous forme de fichier conforme PDF/A.
Dans cette démonstration, je l'enregistrerai en tant que fichier PDF conforme à la norme PDF/A-3B.
Exemple de conception HTML
: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);
Imports IronPdf
' Use the Chrome Renderer to make beautiful HTML designs
Private chromeRenderer = New ChromePdfRenderer()
' Render an HTML design as a PdfDocument object using Chrome
Private pdf As PdfDocument = chromeRenderer.RenderHtmlAsPdf("design.html")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("design-accessible.pdf", PdfAVersions.PdfA3b)
Le fichier de sortie est conforme à la norme PDF/A-3B :
Exemple d'URL
J'ai le site web suivant "https://www.microsoft.com
", que je voudrais rendre de l'URL au PDF en utilisant IronPDF, puis l'exporter en tant que fichier conforme PDF/A.
Dans cette démonstration, je l'enregistrerai en tant que fichier PDF conforme à la norme PDF/A-3B.
: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);
Imports IronPdf
' Use the Chrome Renderer to make beautiful HTML designs from URLs
Private chromeRenderer = New ChromePdfRenderer()
' Render a Website as a PdfDocument object using Chrome
Private pdf As PdfDocument = chromeRenderer.RenderUrlAsPdf("https://www.microsoft.com")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("website-accessible.pdf", PdfAVersions.PdfA3b)
Le fichier de sortie est conforme à la norme PDF/A-3B :
Prise en charge de l'intégration de pièce jointe
IronPdf offre la possibilité d'incorporer des fichiers dans un document PDF tout en le convertissant au format PDF/A. Cela peut être réalisé en utilisant divers types d'entrée tels que des chemins de fichier, des tableaux d'octets ou des flux.
Intégrer avec des chemins de fichiers
Permet l'intégration de fichiers en utilisant leurs chemins d'accès. Une collection de chemins de fichiers est fournie, et ces fichiers sont inclus en tant que pièces jointes lors de la conversion en 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);
Imports IronPdf
Imports System.Collections.Generic
Private pdf As New PdfDocument("Google.pdf")
' Initialize collection of embed file as string of path
Private embedPaths As IEnumerable(Of String) = { "File1.xml", "File2.png" }
' Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedPaths)
Intégrer avec des tableaux d'octets
Permet l'incorporation de fichiers en fournissant le contenu des fichiers sous forme de tableaux d'octets avec leurs types de fichiers respectifs. Cela est 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");
Imports IronPdf
Imports System.Collections.Generic
Imports System.IO
Private pdf As New PdfDocument("Google.pdf")
' Initialize collection of embed file as Bytes and their file type
Private fileData1() As Byte = File.ReadAllBytes("File1.png")
Private fileData2() As Byte = File.ReadAllBytes("File2.xml")
Private embedFileConfig1 = New EmbedFileConfiguration(EmbedFileType.png)
embedFileConfig1.EmbedFileName = "logo.png"
Dim embedFileConfig2 = New EmbedFileConfiguration(EmbedFileType.xml) With {
.EmbedFileName = "supportSystem.xml",
.AFDesc = "Internal system",
.ConformanceLevel = ConformanceLevel.XRECHNUNG,
.SchemaNamespace = SchemaNamespace.Zugferd1,
.SchemaPrefix = SchemaPrefix.rsm,
.PropertyVersion = PropertyVersion.v1p0,
.AFRelationship = AFRelationship.Supplement
}
Dim embedBytes As IEnumerable(Of EmbedFileByte) = {
New EmbedFileByte(fileData1, embedFileConfig1),
New EmbedFileByte(fileData2, embedFileConfig2)
}
' Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedBytes).SaveAs("PdfACompliance.pdf")
Intégrer avec des flux
Fournit la capacité d'incorporer des fichiers en utilisant des flux pour leur contenu, ainsi que leurs types de fichiers. Cette méthode est idéale pour les scénarios où les données de 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");
Imports IronPdf
Imports System.Collections.Generic
Imports System.IO
Private pdf As New PdfDocument("Google.pdf")
' Initialize collection of embed file as Stream and their file type
Private stream1 As Stream = New MemoryStream(File.ReadAllBytes("File1.png"))
Private stream2 As Stream = New MemoryStream(File.ReadAllBytes("File2.xml"))
Private embedFileConfig1 = New EmbedFileConfiguration(EmbedFileType.png)
embedFileConfig1.EmbedFileName = "logo.png"
Dim embedFileConfig2 = New EmbedFileConfiguration(EmbedFileType.xml) With {
.EmbedFileName = "supportSystem.xml",
.AFDesc = "Internal system",
.ConformanceLevel = ConformanceLevel.XRECHNUNG,
.SchemaNamespace = SchemaNamespace.Zugferd1,
.SchemaPrefix = SchemaPrefix.rsm,
.PropertyVersion = PropertyVersion.v1p0,
.AFRelationship = AFRelationship.Supplement
}
Dim embedStreams As IEnumerable(Of EmbedFileStream) = {
New EmbedFileStream(stream1, embedFileConfig1),
New EmbedFileStream(stream2, embedFileConfig2)
}
' Convert to Pdf/A-3B with embeded files
pdf.ConvertToPdfA(embedStreams).SaveAs("PdfACompliance.pdf")
Explorez la configuration EmbedFile
Lors de la conversion d'un PdfDocument au format PDF/A-3 qui inclut 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 les métadonnées XMP personnalisées que vous souhaitez inclure.
Une configuration correcte garantit que le contenu intégré est organisé efficacement et conforme aux normes PDF/A-3. La personnalisation des métadonnées XMP permet d'ajouter des informations supplémentaires sur les fichiers intégrés, améliorant ainsi l'utilisabilité et l'accessibilité globales du document. En utilisant la classe EmbedFileConfiguration
, les développeurs peuvent facilement personnaliser les valeurs et les formats pour le fichier.
EmbedFileName : Une propriété string
représentant le nom du fichier intégré au document PDF/A. Par défaut, cette chaîne est vide.
AFDesc : Une propriété string
représentant la description de fichier associée au fichier intégré. Par défaut, cette chaîne est vide.
Niveau de Conformité : Le niveau de conformité d'intégration du fichier XML s'appliquant aux métadonnées XMP d'un document PDF/A. Par défaut, la valeur initiale est définie sur ConformanceLevel.EN16931
. IronPDF propose sept valeurs différentes parmi lesquelles les développeurs peuvent choisir en utilisant l'énumération ConformanceLevel
disponible ici.
SchemaNamespace : Le NamespaceURI du schéma PDF/A intégrant le fichier XML et l'appliquant aux métadonnées XMP du document PDF/A. Par défaut, la valeur initiale est définie sur SchemaNamespace.facturX
. IronPDF propose cinq valeurs différentes parmi lesquelles les développeurs peuvent choisir pour l'énumération SchemaNameSpace
disponible ici.
SchemaPrefix : Le préfixe de schéma PDF/A pour intégrer un fichier XML s'appliquant aux métadonnées XMP d'un document PDF/A. Par défaut, la valeur initiale est définie sur SchemaPrefix.fx
. IronPDF propose trois valeurs différentes pour que les développeurs puissent choisir à partir de l'énumération SchemaPrefix
disponible ici.
PropertyVersion : La propriété Version du fichier XML intégré s'appliquant aux métadonnées XMP du document PDF/A. Par défaut, la valeur initiale est définie sur PropertyVersion.v1
. IronPDF propose quatre valeurs différentes pour les développeurs à choisir dans l'énumération PropertyVersion
disponible ici.
AFRelationship : La relation du fichier associé (fichier incorporé) avec le document PDF/A. IronPDF offre cinq valeurs différentes pour que les développeurs puissent choisir dans l'énumération PropertyVersion
disponible à partir de ici.