Cómo exportar documentos en formato PDF/A, PDF/A-3 o PDF/A-4 en C#
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.
*
Flujo de trabajo mínimo (5 pasos)

- Descargar biblioteca C# para crear documentos PDF/A
- Carga un archivo existente o crea un PDF desde un archivo, HTML o URL
- Exportar un documento PDF/A-3B desde un archivo PDF existente
- Exportar un documento PDF/A-4 para una mejor compatibilidad con firmas digitales
- Exportar un documento PDF/A desde un diseño de HTML o URL
- Guarda el documento compatible con PDF/A en la ubicación deseada
¿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ón | PDF/A-3 | PDF/A-4 |
|---|---|---|
| Versión PDF base | PDF 1.7 | PDF 2.0 |
| Archivos adjuntos incrustados | Soportado | No compatible |
| Firmas Digitales | Soportado | Soporte mejorado |
| Mejor caso de uso | Facturas, incrustación de datos XML | Ingeniería, modelos 3D, flujos de trabajo técnicos |
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.csusing 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);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.csusing 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);¿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:
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.csusing 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);El archivo de salida es compatible con PDF/A-3B:
¿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.csusing 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);El archivo de salida es compatible con PDF/A-3B:
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.
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.csusing 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);¿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.csusing 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");¿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.csusing 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");¿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");EmbedFileName: Una propiedadstringque representa el nombre del archivo incrustado en el documento PDF/A. Por defecto es una cadena vacía.AFDesc: Una propiedadstringque 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 esConformanceLevel.EN16931. IronPDF proporciona diferentes valores a través del enumConformanceLevel.SchemaNamespace: El PDF/A Schema NamespaceURI que incrusta archivos XML y se aplica a los metadatos XMP del documento PDF/A. Por defecto esSchemaNamespace.facturX, con varias opciones disponibles en el enumSchemaNamespace.SchemaPrefix: El prefijo del esquema PDF/A para incrustar archivos XML que se aplican a los metadatos XMP del documento PDF/A. Por defecto esSchemaPrefix.fx, con varias opciones en el enumSchemaPrefix.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 esPropertyVersion.v1, con múltiples opciones en el enumPropertyVersion.AFRelationship: La relación del archivo asociado (archivo incrustado) con el documento PDF/A. Hay varias opciones disponibles en el enumAFRelationship.
¿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.
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.csusing 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);Resultado
El archivo de salida es compatible con PDF/A-4:
¿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.






