Cómo convertir PDF a PDF/A en C# usando IronPDF

Cómo exportar documentos en formato PDF/A, PDF/A-3 o PDF/A-4 en C#

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

IronPDF admite la exportación de archivos PDF a los estándares PDF/A-3b y PDF/A-4 . PDF/A-3B es un subconjunto estricto de la especificación ISO PDF usado para crear versiones archivables de documentos con la intención de que siempre se rendericen exactamente igual que cuando fueron guardados. PDF/A-4 es el último estándar de cumplimiento y ofrece soporte mejorado para firmas digitales.

Cumplimiento de la Sección 508

IronPDF sigue la iniciativa de Google de aumentar el archivado de PDF y la accesibilidad para el cumplimiento de la Sección 508. Al trabajar con conversión de HTML a PDF, nuestro motor de renderizado conserva todas las características de accesibilidad.

En 2021, pasamos a renderizar PDF desde HTML utilizando el motor de renderizado HTML de Google Chromium. Esto permite que nuestro software herede el trabajo de accesibilidad que Google ya ha implementado.

¿Por qué es importante que los documentos PDF/A cumplan la Sección 508?

El cumplimiento de la Sección 508 garantiza que los documentos PDF sean accesibles para personas con discapacidad que utilicen tecnologías de asistencia como lectores de pantalla. Los documentos PDF/A que cumplen las normas de la Sección 508 garantizan que el contenido siga siendo accesible durante toda la vida útil del archivo. Este cumplimiento es fundamental para las agencias gubernamentales, las instituciones educativas y las organizaciones que proporcionan igualdad de acceso a la información para todos los usuarios.

*

¿Qué versiones de PDF/A admite IronPDF?

IronPDF es compatible con los niveles de conformidad A y B. 'A' representa 'accesible', y 'B' representa 'básico'. Estos niveles están disponibles en los estándares PDF/A-1, PDF/A-2 y PDF/A-3. La información que figura a continuación procede de la documentación de Adobe sobre PDF/A. Por defecto, la salida PDF generada a través de IronPDF es PDF/A-3B (ISO 19005-3).

  • la conformidad con el nivel A cumple todos los requisitos de la especificación, lo que permite que el software de asistencia mejore la accesibilidad de los usuarios con discapacidades físicas.
  • Nivel B tiene una conformidad inferior con un cumplimiento mínimo, centrándose en preservar el aspecto visual a largo plazo.

¿Cuáles son las diferencias entre PDF/A-1, PDF/A-2 y PDF/A-3?

PDF/A-1: Basado en la versión original PDF 1.4.

PDF/A-2: Publicado en julio de 2011 como ISO 32001-1, incluye todas las características de las versiones de PDF hasta la 1.7 además de nuevas características. Admite JPEG2000 para documentos escaneados y requisitos específicos para metadatos XMP personalizados. Cuando se trabaja con metadatos de PDF, IronPDF garantiza una gestión adecuada de los metadatos XMP.

PDF/A-3: Incluye todos los requisitos del nivel 2. Permite incrustar formatos de archivo adicionales (XML, CSV y formatos de procesamiento de texto) en documentos conformes con PDF/A.

PDF/A-4 : La última versión del estándar de conformidad PDF/A, publicada en 2020. Se basa en PDF 2.0 e introduce funciones mejoradas, incluyendo mayor compatibilidad con firmas digitales en comparación con PDF/A-3. Esta versión es ideal para documentos de ingeniería y flujos de trabajo técnicos que involucran modelos 3D y otros elementos complejos.

FunciónPDF/A-3PDF/A-4
Versión PDF basePDF 1.7PDF 2.0
Archivos adjuntos incrustadosSoportadoNo compatible
Firmas DigitalesSoportadoSoporte mejorado
Mejor caso de usoFacturas, incrustación de datos XMLIngeniería, modelos 3D, flujos de trabajo técnicos

Por favor notaIronPdf aún no permite convertir un PDF con un archivo adjunto a PDF/A-3B.

Conversión al último estándar PDF/A-4

PDF/A-4 es el último estándar de cumplimiento de la serie PDF/A. Se considera el mejor formato de archivo para una amplia gama de tipos de documentos, particularmente aquellos que involucran firmas digitales. El formato no permite el cifrado ni los elementos multimedia, lo que garantiza que cada archivo permanezca totalmente autónomo.

Convertir un archivo existente al estándar compatible con PDF/A-4 es sencillo.

: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

Desde un archivo PDF existente (PDF/A-3B)

Tengo un PDF de ejemplo "wikipedia.pdf" generado con IronPDF y guardado como archivo PDF. Para obtener resultados óptimos, asegúrese de haber configurado correctamente sus claves de licencia antes de iniciar la conversión.

Lo cargaré y lo volveré a guardar como un archivo PDF compatible con PDF/A-3B y otra copia como PDF/A-4 (para mostrar compatibilidad con el último estándar de cumplimiento) en esta demostración.

¿Cómo es el PDF de entrada antes de la conversión?

¿Qué código convierte los PDF existentes al formato 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

¿Cómo puedo comprobar si la conversión a PDF/A se ha realizado correctamente?

El archivo de salida es compatible con PDF/A-3b:

veraPDF Conformance Checker muestra la validación PDF/A-3B correcta con un mensaje de conformidad verde

Desde un diseño HTML o URL (PDF/A-3B)

Tengo un ejemplo de diseño HTML "design.html" para pasar de HTML a PDF utilizando IronPDF y exportarlo como archivo compatible con PDF/A. El proceso conversión de archivo HTML a PDF mantiene todos los estilos y formatos durante la conversión.

Lo guardaré como un archivo PDF compatible con PDF/A-3B en esta demostración.

¿Cómo puedo convertir archivos HTML a formato 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

El archivo de salida es compatible con PDF/A-3B:

veraPDF Conformance Checker muestra la validación correcta del PDF con un mensaje de conformidad verde

¿Cómo puedo convertir sitios web al formato PDF/A?

Tengo el sitio web "https://www.microsoft.com" para renderizar de URL a PDF usando IronPDF y exportar como archivo compatible con PDF/A. La función Conversión de URL a PDF garantiza que todo el contenido web, incluidos JavaScript y CSS, se renderice correctamente.

Lo guardaré como un archivo PDF compatible con PDF/A-3B en esta demostración.

: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

El archivo de salida es compatible con PDF/A-3B:

veraPDF Conformance Checker muestra la validación correcta de PDF/A-3B con un mensaje de conformidad verde y opciones de informe


Admite la inserción de archivos adjuntos (PDF/A-3B)

IronPDF ofrece la posibilidad de incrustar archivos en documentos PDF y convertirlos al formato PDF/A. Para ello se pueden utilizar rutas de archivos, matrices de bytes o secuencias. Esta función crea documentos de archivo autónomos que incluyen todo el material de apoyo necesario. Para conocer funciones más avanzadas de manipulación de PDF, consulte nuestro tutorial completo de edición de PDF.

Por favor notaNota: Los archivos adjuntos incrustados solo se admiten en PDF/A-3B. PDF/A-4 no admite archivos adjuntos incrustados.

Embebe con rutas de archivos

Incrusta los archivos utilizando sus rutas. Se proporciona una colección de rutas de archivos, que se incluyen como archivos adjuntos durante la conversión a 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

¿Cómo incrustar archivos utilizando matrices de bytes?

Incrustar archivos proporcionando el contenido del archivo como matrices de bytes con sus respectivos tipos de archivo. Resulta útil cuando los archivos ya están cargados en memoria.

: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

¿Cómo incrustar archivos usando streams?

Incrustar archivos utilizando secuencias para el contenido con sus tipos de archivo. Ideal cuando los datos del archivo se procesan como un flujo.

: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

¿Cómo configuro las propiedades de los archivos incrustados con EmbedFileConfiguration?

Al convertir un documento Pdf a un formato PDF/A-3 que incluye archivos incrustados, es importante configurar parámetros como EmbedFilePath, EmbedFileByte o EmbedFileStream. Estos ajustes te permiten especificar el tipo de archivo incrustado, su nombre y cualquier metadato XMP personal que desees incluir.

Una configuración adecuada garantiza que el contenido incrustado se organice de forma eficaz y cumpla las normas PDF/A-3. La personalización de los metadatos XMP permite obtener información adicional sobre los archivos incrustados, lo que mejora la usabilidad y accesibilidad de los documentos. Mediante la clase EmbedFileConfiguration, los desarrolladores pueden personalizar fácilmente los valores y formatos del archivo.

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: Una propiedad string que representa el nombre del archivo incrustado en el documento PDF/A. Por defecto es una cadena vacía.
  • AFDesc: Una propiedad string que representa la descripción del archivo asociado para el archivo incrustado. Por defecto es una cadena vacía.
  • ConformanceLevel: El nivel de conformidad del archivo XML incrustado que aplica a los metadatos XMP del documento PDF/A. El valor por defecto es ConformanceLevel.EN16931. IronPDF proporciona diferentes valores a través del enum ConformanceLevel.
  • SchemaNamespace: El PDF/A Schema NamespaceURI que incrusta archivos XML y se aplica a los metadatos XMP del documento PDF/A. Por defecto es SchemaNamespace.facturX, con varias opciones disponibles en el enum SchemaNamespace.
  • SchemaPrefix: El prefijo del esquema PDF/A para incrustar archivos XML que se aplican a los metadatos XMP del documento PDF/A. Por defecto es SchemaPrefix.fx, con varias opciones en el enum SchemaPrefix.
  • PropertyVersion: La versión de la propiedad de incrustación de archivos XML aplicada a los metadatos XMP del documento PDF/A. El valor por defecto es PropertyVersion.v1, con múltiples opciones en el enum PropertyVersion.
  • AFRelationship: La relación del archivo asociado (archivo incrustado) con el documento PDF/A. Hay varias opciones disponibles en el enum AFRelationship.

¿Qué causa problemas de visualización de caracteres en PDF/A?

PDF/A requiere que todos los caracteres del documento se correspondan con una fuente visual y semánticamente correcta. Aunque no todas las fuentes deben estar incrustadas, la fuente utilizada debe admitir los glifos requeridos. Si se utiliza una fuente incorrecta o incompleta, algunos caracteres pueden aparecer rotos, ausentes o mal representados, sobre todo en idiomas con guiones o símbolos especiales. Para optimizar el tamaño de los archivos, consulte nuestra Guía de compresión de PDF para equilibrar la incrustación de fuentes con el tamaño del archivo.

¿Por qué algunos caracteres aparecen entrecortados en los documentos PDF/A?

Por ejemplo, en el ejemplo de abajo, la muestra superior utiliza la fuente correcta y muestra los caracteres correctamente, mientras que la muestra inferior no los muestra correctamente debido a la falta de coincidencia de fuentes.

Comparación de codificación de caracteres que muestra la corrupción de fuentes en la conversión PDF/A de DejaVuSans y Times New Roman

Desde un archivo PDF existente (PDF/A-4)

Tengo un PDF de ejemplo " who.pdf ", que contiene la Estrategia Mundial de Salud de la Organización Mundial de la Salud para 2025-2028. Este documento se generó con IronPDF y se guardó como un archivo PDF estándar.

Lo cargaré y lo volveré a guardar como un archivo PDF compatible con PDF/A-4 en esta demostración, lo que garantiza el cumplimiento del archivo a largo plazo para este importante documento de salud mundial.

Archivo de entrada: "who.pdf"

Código

: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

Resultado

El archivo de salida es compatible con PDF/A-4:

¡ licencia completa !

¿Listo para ver qué más puedes hacer? Consulta nuestra página de tutorial aquí: Crear PDFs

Preguntas Frecuentes

¿Cómo convierto un PDF estándar al formato PDF/A-3b en C#?

Con IronPDF, puede convertir cualquier PDF estándar al formato PDF/A-3b utilizando sólo dos líneas de código. Simplemente cargue su PDF utilizando PdfDocument.FromFile() y luego llame a SaveAsPdfA() para exportarlo como un documento PDF/A-3b compatible para archivarlo a largo plazo.

¿Qué es PDF/A-3b y por qué es importante para el archivo de documentos?

PDF/A-3b es un subconjunto estricto de la especificación ISO PDF diseñado para la conservación de documentos a largo plazo. IronPDF admite la exportación de PDF/A-3b para garantizar que sus documentos siempre se muestren exactamente como se guardaron, lo que lo hace ideal para fines legales, gubernamentales y de archivo en los que la integridad de los documentos es fundamental.

¿Es compatible la conversión a PDF/A con el cumplimiento de la Sección 508 de accesibilidad?

Sí, IronPDF garantiza el cumplimiento de la Sección 508 utilizando el motor de renderizado de Google Chromium, que hereda las funciones de accesibilidad de Google. Esto significa que sus documentos PDF/A serán accesibles para usuarios con discapacidades que utilicen tecnologías de asistencia como lectores de pantalla.

¿Puedo convertir contenidos HTML directamente al formato PDF/A?

Por supuesto IronPDF permite convertir contenidos HTML o URL directamente al formato PDF/A-3b. El motor de renderizado Google Chromium conserva todas las características de accesibilidad durante la conversión de HTML a PDF, lo que garantiza que los documentos PDF/A resultantes cumplen todos los requisitos.

¿Cuáles son las principales ventajas de utilizar PDF/A-3b en lugar del formato PDF estándar?

La exportación a PDF/A-3b de IronPDF garantiza la conservación a largo plazo, la representación coherente en todos los visores, el cumplimiento de la Sección 508 de accesibilidad y la adhesión a las normas ISO de archivado. Esto lo hace perfecto para documentos legales, registros gubernamentales y cualquier contenido que requiera un archivo permanente.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,012,929 | Versión: 2025.12 recién lanzado