Convierte PDF a CSV y CSV a PDF usando C++

Los archivos PDF son un formato estándar para intercambiar documentos a través de Internet. Puede haber situaciones en las que necesite procesar los datos en el archivo PDF y agregarlos a una base de datos. Para tales escenarios, convertir el documento PDF a formato CSV podría resultar útil. Por otro lado, es posible que tenga algunos datos tabulares en formato CSV que desee compartir de forma de solo lectura con alguien. Puede lograr esto convirtiendo los archivos CSV a formato PDF. En este artículo, aprenderá a interconvertir archivos PDF y CSV mediante programación usando C++.

API de C++ para convertir CSV a PDF y PDF a formato CSV

Para lograr estas conversiones, necesitará Aspose.Cells for C++ y Aspose.PDF for C++ API. La primera es una biblioteca de C++ para crear, leer y modificar archivos de Excel, mientras que la segunda es una API para trabajar con archivos PDF. Usaremos Aspose.Cells for C++ API para convertir archivos CSV a formato PDF y Aspose.PDF for C++ API para convertir archivos PDF a formato CSV. Puede instalar las API a través de NuGet o descargarlas directamente desde la sección Descargas.

PM> Install-Package Aspose.Cells.Cpp
PM> Install-Package Aspose.PDF.Cpp

Convertir archivos CSV a formato PDF

Los siguientes son los pasos para convertir archivos CSV a formato PDF.

El siguiente es el código de muestra para convertir archivos CSV a formato PDF usando C++.

// Ruta del directorio de origen.
StringPtr srcDir = new String("SourceDirectory\\");

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Crear objeto CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// Cargue el archivo de Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// Guardar como archivo PDF
workbook->Save(outDir->StringAppend(new String("Sample1_out.pdf")), SaveFormat_Pdf);

Convertir un archivo PDF a formato CSV

Los siguientes son los pasos para convertir un archivo PDF a formato CSV.

El siguiente es el código de muestra para convertir un archivo PDF a formato CSV usando C++.

// Cargar archivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// Inicializar objeto de clase ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Establecer formato de guardado como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

// Guardar como archivo CSV
pdfDocument->Save(u"OutputDirectory\\Sample2_csv_out.csv", options);

Convertir páginas PDF seleccionadas en un archivo CSV

Aspose.PDF for C++ también le brinda la posibilidad de incluir páginas PDF específicas en el archivo CSV convertido. Para conseguirlo, puedes seguir los siguientes pasos.

El siguiente es el código de muestra para incluir páginas PDF seleccionadas en el archivo CSV.

// Cargar archivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// Inicializar objeto de clase ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Establecer formato de guardado como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

// Cree una instancia de la clase Document para representar el archivo CSV.
auto newPdfDocument = MakeObject<Document>();

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// Obtener las primeras 2 páginas
	if (i <= 2)
	{
		// Agregar la página a la nueva instancia de Documento
		newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));
	}
}

// Guardar como archivo CSV
newPdfDocument->Save(u"OutputDirectory\\Sample2_csv_out.csv", options);

Conversión de páginas PDF en archivos CSV individuales

Con Aspose.PDF for C++, también puede convertir páginas PDF en archivos CSV individuales. Para conseguirlo, puedes seguir los siguientes pasos.

El siguiente es el código de muestra para convertir páginas PDF en archivos CSV individuales usando C++.

// Cargar archivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// Inicializar objeto de clase ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Establecer formato de guardado como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// Cree una instancia de la clase Document para representar el archivo CSV.
	auto newPdfDocument = MakeObject<Document>();

	// Agregar la página a la nueva instancia de Documento
	newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));

	// Guardar como archivo CSV
	newPdfDocument->Save(u"OutputDirectory\\Sample2_csv_out_" + System::Convert::ToString(i) + u".csv", options);
}

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido cómo convertir archivos CSV a PDF y archivos PDF a formato CSV. Además, ha visto cómo agregar páginas específicas al archivo CSV generado o convertir páginas PDF en archivos CSV individuales. Aspose.Cells for C++ y Aspose.PDF for C++ son potentes API para trabajar con archivos Excel y PDF, respectivamente. Puede explorar las API en detalle visitando su documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también