Convertir formatos PDF a PDF/A

Aspose.PDF para .NET te permite convertir un archivo PDF en un archivo PDF conforme a PDF/A. Antes de hacerlo, el archivo debe ser validado. Este tema explica cómo hacerlo.

Convierte el archivo utilizando el método Convert de la clase Document.

El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.

Convertir archivo PDF a PDF/A-1b

El siguiente fragmento de código muestra cómo convertir archivos PDF a PDF compatibles con PDF/A-1b.

// Para ejemplos completos y archivos de datos, por favor visita https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// Abrir documento
Document pdfDocument = new Document(dataDir + "PDFToPDFA.pdf");
           
// Convertir a documento compatible con PDF/A
// Durante el proceso de conversión, también se realiza la validación
pdfDocument.Convert(dataDir + "log.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);

dataDir = dataDir + "PDFToPDFA_out.pdf";
// Guardar el documento de salida
pdfDocument.Save(dataDir);

Para realizar solo la validación, utiliza la siguiente línea de código:

// Para ejemplos completos y archivos de datos, por favor visita https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

// Abrir documento
Document pdfDocument = new Document(dataDir + "ValidatePDFAStandard.pdf");

// Validar PDF para PDF/A-1a
pdfDocument.Validate(dataDir + "validation-result-A1A.xml", PdfFormat.PDF_A_1B);

Convertir archivo PDF a formato PDF/A-3b

Aspose.PDF para .NET también admite la función de convertir un archivo PDF al formato PDF/A-3b.

// Para ejemplos completos y archivos de datos, por favor visita https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// Abrir documento
Document pdfDocument = new Document(dataDir + "input.pdf");           

pdfDocument.Convert(new MemoryStream(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);

dataDir = dataDir + "PDFToPDFA3b_out.pdf";
// Guardar el documento de salida
pdfDocument.Save(dataDir);

Convertir archivo PDF a formato PDF/A-2u

Aspose.PDF para .NET también soporta la funcionalidad de convertir un archivo PDF a formato PDF/A-2u.

string inFile = "input.pdf";
string outFile = "output.pdf";
Aspose.PDF.Document doc = new Aspose.PDF.Document(inFile);
doc.Convert(new MemoryStream(), PdfFormat.PDF_A_2U, ConvertErrorAction.Delete);
doc.Save(outFile);

Convertir archivo PDF a formato PDF/A-3u

Aspose.PDF para .NET también soporta la funcionalidad de convertir un archivo PDF a formato PDF/A-3u.

string inFile = "input.pdf";
string outFile = "output.pdf";
Aspose.PDF.Document doc = new Aspose.PDF.Document(inFile);
doc.Convert(new MemoryStream(), PdfFormat.PDF_A_3U, ConvertErrorAction.Delete);
doc.Save(outFile);

Añadir adjunto a archivo PDF/A

En caso de que necesite adjuntar archivos a un formato de cumplimiento PDF/A, entonces recomendamos usar el valor PDF_A_3A de la enumeración Aspose.PDF.PdfFormat. PDF/A_3a es el formato que proporciona la funcionalidad de adjuntar cualquier formato de archivo como un adjunto a un archivo compatible con PDF/A.

## Reemplace las fuentes faltantes con fuentes alternativas

Según los estándares PDFA, las fuentes deben estar incrustadas en el documento PDFA.

```csharp
// Para ejemplos completos y archivos de datos, por favor vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

// Instanciar la instancia del Documento para cargar el archivo existente
Aspose.Pdf.Document doc = new Document(dataDir + "input.pdf");
// Configurar nuevo archivo para ser añadido como adjunto
FileSpecification fileSpecification = new FileSpecification(dataDir + "aspose-logo.jpg", "Archivo de imagen grande");
// Añadir adjunto a la colección de adjuntos del documento
doc.EmbeddedFiles.Add(fileSpecification);
// Realizar la conversión a PDF/A_3a para que el adjunto esté incluido en el archivo resultante
doc.Convert(dataDir + "log.txt", Aspose.Pdf.PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);
// Guardar el archivo resultante
doc.Save(dataDir + "AddAttachmentToPDFA_out.pdf");

type: docs changefreq: “monthly” Según los estándares PDFA, las fuentes deben estar incrustadas en el documento PDFA.

// Para ejemplos completos y archivos de datos, por favor visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();

Aspose.Pdf.Text.Font originalFont = null;
try
{
    originalFont = FontRepository.FindFont("AgencyFB");
}
catch (Exception)
{
    // La fuente falta en la máquina de destino
    FontRepository.Substitutions.Add(new SimpleFontSubstitution("AgencyFB", "Arial"));
}
var fileNew = new FileInfo(dataDir + "newfile_out.pdf");
var pdf = new Document(dataDir + "input.pdf");
pdf.Convert(dataDir +  "log.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);
pdf.Save(fileNew.FullName);