Converta PDF para CSV e CSV para PDF usando C++

Os arquivos PDF são um formato padrão para troca de documentos pela Internet. Pode haver situações em que você precise processar os dados no arquivo PDF e adicioná-los a um banco de dados. Para esses cenários, converter o documento PDF para o formato CSV pode ser útil. Por outro lado, você pode ter alguns dados tabulares no formato CSV que deseja compartilhar de maneira somente leitura com alguém. Você pode conseguir isso convertendo os arquivos CSV para o formato PDF. Neste artigo, você aprenderá como interconverter arquivos PDF e CSV programaticamente usando C++.

API C++ para converter CSV para PDF e PDF para formato CSV

Para obter essas conversões, você precisará das APIs Aspose.Cells for C++ e Aspose.PDF for C++. A primeira é uma biblioteca C++ para criar, ler e modificar arquivos Excel, enquanto a segunda é uma API para trabalhar com arquivos PDF. Usaremos o Aspose.Cells para C++ API para converter arquivos CSV para o formato PDF e o Aspose.PDF para C++ API para converter arquivos PDF para o formato CSV. Você pode instalar as APIs por meio do NuGet ou baixá-las diretamente da seção Downloads.

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

Converter arquivos CSV para o formato PDF

A seguir estão as etapas para converter arquivos CSV para o formato PDF.

Veja a seguir o código de exemplo para converter arquivos CSV em formato PDF usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

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

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

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

Convertendo um arquivo PDF para o formato CSV

A seguir estão as etapas para converter um arquivo PDF para o formato CSV.

Veja a seguir o código de exemplo para converter um arquivo PDF para o formato CSV usando C++.

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

// Inicializar o objeto da classe ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Definir o formato de salvamento como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

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

Converter páginas PDF selecionadas em um arquivo CSV

O Aspose.PDF para C++ também oferece a capacidade de incluir páginas PDF específicas no arquivo CSV convertido. Para conseguir isso, você pode seguir os seguintes passos.

Veja a seguir o código de exemplo para incluir páginas PDF selecionadas no arquivo CSV.

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

// Inicializar o objeto da classe ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Definir o formato de salvamento como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

// Crie uma instância da classe Document para representar o arquivo CSV.
auto newPdfDocument = MakeObject<Document>();

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// Obter as primeiras 2 páginas
	if (i <= 2)
	{
		// Adicione a página à nova instância de Document
		newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));
	}
}

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

Convertendo páginas PDF em arquivos CSV individuais

Com o Aspose.PDF para C++, você também pode converter páginas PDF em arquivos CSV individuais. Para conseguir isso, você pode seguir os seguintes passos.

Veja a seguir o código de exemplo para converter páginas PDF em arquivos CSV individuais usando C++.

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

// Inicializar o objeto da classe ExcelSaveOptions
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// Definir o formato de salvamento como CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// Crie uma instância da classe Document para representar o arquivo CSV.
	auto newPdfDocument = MakeObject<Document>();

	// Adicione a página à nova instância do Document
	newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));

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

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como converter arquivos CSV em PDF e arquivos PDF em formato CSV. Além disso, você viu como adicionar páginas específicas ao arquivo CSV gerado ou converter páginas PDF em arquivos CSV individuais. Aspose.Cells para C++ e Aspose.PDF para C++ são APIs poderosas para trabalhar com arquivos Excel e PDF, respectivamente. Você pode explorar as APIs em detalhes visitando sua documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também