使用 C++ 将 PDF 转换为 CSV 和 CSV 到 PDF

PDF 文件是通过 Internet 交换文档的标准格式。在某些情况下,您可能需要处理 PDF 文件中的数据并将其添加到数据库中。对于这种情况,将 PDF 文档转换为 CSV 格式可能会有所帮助。另一方面,您可能希望以只读方式与某人共享一些 CSV 格式的表格数据。您可以通过将 CSV 文件转换为 PDF 格式来实现这一点。在本文中,您将学习如何使用 C++ 以编程方式相互转换 PDF 和 CSV 文件。

C++ API 将 CSV 转换为 PDF 和 PDF 转换为 CSV 格式

要实现这些转换,您将需要 Aspose.Cells for C++Aspose.PDF for C++ API。前者是用于创建、读取和修改 Excel 文件的 C++ 库,而后者是用于处理 PDF 文件的 API。我们将使用 Aspose.Cells for C++ API 将 CSV 文件转换为 PDF 格式,使用 Aspose.PDF for C++ API 将 PDF 文件转换为 CSV 格式。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载它们。

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

将 CSV 文件转换为 PDF 格式

以下是将 CSV 文件转换为 PDF 格式的步骤。

以下是使用 C++ 将 CSV 文件转换为 PDF 格式的示例代码。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 创建 CSV LoadOptions 对象
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// 另存为 PDF 文件
workbook->Save(outDir->StringAppend(new String("Sample1_out.pdf")), SaveFormat_Pdf);

将 PDF 文件转换为 CSV 格式

以下是将 PDF 文件转换为 CSV 格式的步骤。

以下是使用 C++ 将 PDF 文件转换为 CSV 格式的示例代码。

// 加载 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// 初始化 ExcelSaveOptions 类对象
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// 将保存格式设置为 CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

// 另存为 CSV 文件
pdfDocument->Save(u"OutputDirectory\\Sample2_csv_out.csv", options);

将选定的 PDF 页面转换为 CSV 文件

Aspose.PDF for C++ 还让您能够在转换后的 CSV 文件中包含特定的 PDF 页面。为此,您可以按照以下步骤操作。

以下是在 CSV 文件中包含选定 PDF 页面的示例代码。

// 加载 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// 初始化 ExcelSaveOptions 类对象
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// 将保存格式设置为 CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

// 创建 Document 类的实例来表示 CSV 文件。
auto newPdfDocument = MakeObject<Document>();

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// 获取前 2 页
	if (i <= 2)
	{
		// 将页面添加到新的 Document 实例
		newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));
	}
}

// 另存为 CSV 文件
newPdfDocument->Save(u"OutputDirectory\\Sample2_csv_out.csv", options);

将 PDF 页面转换为单个 CSV 文件

使用 Aspose.PDF for C++,您还可以将 PDF 页面转换为单独的 CSV 文件。为此,您可以按照以下步骤操作。

以下是使用 C++ 将 PDF 页面转换为单个 CSV 文件的示例代码。

// 加载 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample2_csv.pdf");

// 初始化 ExcelSaveOptions 类对象
auto options = MakeObject<ExcelSaveOptions>();
options->ConversionEngine = ExcelSaveOptions::ConversionEngines::NewEngine;

// 将保存格式设置为 CSV
options->set_Format(ExcelSaveOptions::ExcelFormat::CSV);

for (int i = 1; i <= pdfDocument->get_Pages()->get_Count(); i++)
{
	// 创建 Document 类的实例来表示 CSV 文件。
	auto newPdfDocument = MakeObject<Document>();

	// 将页面添加到新的 Document 实例
	newPdfDocument->get_Pages()->Add(pdfDocument->get_Pages()->idx_get(i));

	// 另存为 CSV 文件
	newPdfDocument->Save(u"OutputDirectory\\Sample2_csv_out_" + System::Convert::ToString(i) + u".csv", options);
}

获得免费许可证

您可以通过申请 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何将 CSV 文件转换为 PDF 和 PDF 文件转换为 CSV 格式。此外,您还了解了如何将特定页面添加到生成的 CSV 文件或将 PDF 页面转换为单个 CSV 文件。 Aspose.Cells for C++ 和 Aspose.PDF for C++ 分别是处理 Excel 和 PDF 文件的强大 API。您可以通过访问其官方文档来详细探索这些 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看