Comment exporter des documents au format PDF/A ou PDF/A-3 en C
IronPDF prend en charge l'exportation de PDF selon 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 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 de la technologietravaux d'accessibilité Google a déjà mis en œuvre:
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écharger la bibliothèque C# pour la création de 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 proviennent deDocumentation d'Adobe sur le PDF/A.
- 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 est un niveau de conformité inférieur, avec une conformité minimale, qui se concentre sur la préservation de l'aspect visuel du fichier à long terme.
PDF/A-1 : Le format PDF/A est basé sur la version originale PDF 1.4.
PDF/A-2 : Publiée en juillet 2011 sous la forme d'une nouvelle norme appelée ISO 32001-1, cette norme inclut toutes les fonctionnalités des versions PDF jusqu'à la version 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 comprend toutes les exigences du niveau 2. Il permet également d'intégrer d'autres formats de fichiers, tels que XML, CSV et des formats de traitement de texte, dans des documents conformes au format 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é à l'aide d'IronPDF et enregistré en tant que 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 conception HTML "design.html
", que j'aimerais convertir de HTML en PDF à l'aide d'IronPDF, puis exporter sous la forme d'un fichier conforme à la norme 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 et ensuite 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")