Saltar al pie de página
HERRAMIENTAS PDF

Cómo Convertir PDF a PDFA en C++

El formato de documento portátil (PDF) ha sido el formato de referencia para compartir documentos en varias plataformas. Sin embargo, con la creciente importancia del archivo digital, hay una necesidad creciente de archivar documentos en un formato estandarizado que asegure la preservación y accesibilidad a largo plazo. El formato PDF/A (PDFA) está diseñado específicamente para este propósito, ofreciendo un formato estable y autónomo que es adecuado para el archivo.

Entendiendo PDF/A

PDF/A, una variante de PDF estandarizada por ISO, está diseñada para preservar documentos a lo largo del tiempo, manteniendo la accesibilidad e integridad del contenido. En contraste con un archivo PDF regular, un archivo PDF/A viene con restricciones específicas que aseguran su robustez y autosuficiencia.

Este artículo te guía a través del proceso de conversión de documentos PDF al formato PDF/A usando la biblioteca QPDF en C++. QPDF, una poderosa biblioteca C++, permite a los desarrolladores gestionar y convertir documentos PDF de manera programática, incluida la conversión de PDF a PDF/A, en solo unas pocas líneas de código.

Biblioteca C++ de QPDF

QPDF es una biblioteca C++ y una herramienta de línea de comandos diseñada para ayudar a trabajar con, transformar y analizar archivos PDF. Permite a los desarrolladores acceder y manipular programáticamente el contenido de archivos PDF, con un amplio soporte. QPDF es un proyecto de código abierto que ofrece una variedad de características, incluida la encriptación, desencriptación, linealización, optimización y conformidad con PDF/A.

Requisitos previos

Antes de comenzar, asegúrate de tener configurado lo siguiente:

  1. IDE Code::Blocks: Descarga e instala Code::Blocks desde el sitio web oficial (Sitio Oficial de Code::Blocks).
  2. Biblioteca QPDF: Descarga la versión más reciente de la biblioteca QPDF para tu sistema operativo desde el sitio web de QPDF (Sitio Oficial de QPDF).

Creación de un proyecto PDF a PDF/A

  1. Abre Code::Blocks: Inicia el IDE Code::Blocks en tu computadora.
  2. Crea un nuevo proyecto: Haz clic en Archivo en el menú superior, luego selecciona Nuevo, seguido de Proyecto.
  3. Elige Tipo de Proyecto: En la ventana Nuevo desde plantilla, elige Aplicación de consola y haz clic en Ir. Selecciona el lenguaje C/C++ y haz clic en Siguiente.
  4. Ingresa los Detalles del Proyecto: Proporciona un nombre para el proyecto en el campo Título del proyecto (por ejemplo, "PDFtoPDFA"). Elige dónde guardar los archivos del proyecto y haz clic en Siguiente.
  5. Selecciona el Compilador: Elige un compilador, y si es necesario, selecciona manualmente uno de la lista. Haz clic en Finalizar.

Añadir QPDF al proyecto

Para incluir los archivos de cabecera de QPDF en Code::Blocks, sigue estos pasos:

  1. Haz clic en Proyecto en el menú.
  2. Selecciona Opciones de compilación del menú contextual.
  3. En el cuadro de diálogo Opciones de compilación, ve a la pestaña Directorios de búsqueda.
  4. En la pestaña Compilador, haz clic en el botón Agregar y navega hasta el directorio que contiene los archivos de cabecera de QPDF (generalmente ubicado en la carpeta include).
  5. Luego, en la pestaña Enlace, haz clic en el botón Agregar e incluye los directorios lib y bin.
  6. Haz clic en OK para cerrar el cuadro de diálogo Opciones de compilación.

Además, necesitas establecer una conexión con la biblioteca QPDF durante la fase de enlace. Siga estos pasos:

  1. En el cuadro de diálogo Opciones de compilación, ve a la pestaña Ajustes del enlazador.
  2. Bajo Bibliotecas de enlace, haz clic en Agregar, luego navega hasta el directorio con los archivos de la biblioteca QPDF (generalmente con una extensión de archivo .a o .lib en Windows).
  3. Haz clic en Agregar de nuevo e ingresa el nombre de la biblioteca QPDF (por ejemplo, libqpdf.a o qpdf.lib).
  4. Haz clic en OK para cerrar el cuadro de diálogo Opciones de compilación.

Pasos para convertir un PDF en un archivo PDF/A

Incluya los archivos de cabecera necesarios

#include <iostream>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFWriter.hh>

// The above code includes necessary header files for standard input/output operations and QPDF functionalities.
#include <iostream>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFWriter.hh>

// The above code includes necessary header files for standard input/output operations and QPDF functionalities.
C++

Configurar rutas para archivos de entrada y salida

En la función main (punto de inicio del programa C++), establece rutas para los archivos de entrada y salida:

std::string input_pdf_path = "input.pdf";
std::string output_pdf_a_path = "output.pdfa";

// These lines declare and initialize strings to store the paths of the input PDF and the output PDF/A file.
std::string input_pdf_path = "input.pdf";
std::string output_pdf_a_path = "output.pdfa";

// These lines declare and initialize strings to store the paths of the input PDF and the output PDF/A file.
C++

Crear objeto QPDF para archivo PDF

QPDF input_pdf;
input_pdf.processFile(input_pdf_path.c_str());

// Create a QPDF object for the input PDF and process the file to prepare it for conversion.
QPDF input_pdf;
input_pdf.processFile(input_pdf_path.c_str());

// Create a QPDF object for the input PDF and process the file to prepare it for conversion.
C++

Crear QPDFWriter Objeto para Escribir Archivo PDF/A

QPDFWriter writer(input_pdf, output_pdf_a_path.c_str());

// This creates a QPDFWriter object to handle writing the converted PDF/A file.
QPDFWriter writer(input_pdf, output_pdf_a_path.c_str());

// This creates a QPDFWriter object to handle writing the converted PDF/A file.
C++

Configurar la conformidad PDF/A y convertir documentos PDF

writer.setQDFMode(true);
writer.write();

// Set the QPDFWriter to operate in PDF/A compliant mode and write the output file.
writer.setQDFMode(true);
writer.write();

// Set the QPDFWriter to operate in PDF/A compliant mode and write the output file.
C++

Resultado

El archivo de salida no es editable y cumple con PDF/A:

Cómo Convertir PDF a PDF/A en C++: Figura 2

Convertir PDF a PDF/A en C#

Biblioteca IronPDF es una biblioteca PDF de .NET que proporciona funcionalidades completas para trabajar con documentos PDF. Permite a los desarrolladores crear, modificar y convertir documentos PDF usando C# o VB.NET. Los usuarios pueden usar IronPDF para generar archivos PDF desde HTML, ASPX, documentos de Word (.doc) o imágenes de manera dinámica e incorporar elementos ricos como gráficos, tablas y datos de imagen (como formatos JPG, PNG). También permite la fusión, división y edición de páginas de archivos PDF existentes, junto con la extracción de texto y la manipulación de contenido de datos PDF.

IronPDF facilita la conversión de PDF al estándar PDF/A-3b con solo unas pocas líneas de código. El siguiente código ayuda a lograr esta tarea:

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.PdfA3);

// The above C# code demonstrates the use of IronPDF to convert a PDF document to a PDF/A-3b compliant file.
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.PdfA3);

// The above C# code demonstrates the use of IronPDF to convert a PDF document to a PDF/A-3b compliant file.
$vbLabelText   $csharpLabel

Conclusión

Este artículo te guía a través de la conversión C++ de un documento PDF estándar al formato PDF/A usando las bibliotecas QPDF. La conformidad con PDF/A asegura la preservación y accesibilidad del contenido, haciéndolo ideal para el archivo.

IronPDF también admite varias conversiones de formato como HTML, imágenes y documentos de Word a archivos PDF. Para más información, por favor visita esta Página de Documentación de IronPDF.

IronPDF ofrece una prueba gratuita de IronPDF para probar la funcionalidad para la producción comercial. Descargue IronPDF directamente.

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