![使用 C++ 将 PDF 转换为 CSV 和 CSV 到 PDF](images/PDFToCSVAndCSVToPDF-1024x404.jpg#center)
PDF 文件是通过 Internet 交换文档的标准格式。在某些情况下,您可能需要处理 PDF 文件中的数据并将其添加到数据库中。对于这种情况,将 PDF 文档转换为 CSV 格式可能会有所帮助。另一方面,您可能希望以只读方式与某人共享一些 CSV 格式的表格数据。您可以通过将 CSV 文件转换为 PDF 格式来实现这一点。在本文中,您将学习如何使用 C++ 以编程方式相互转换 PDF 和 CSV 文件。
- C++ API 将 CSV 转换为 PDF 和 PDF 转换为 CSV 格式
- 将 CSV 文件转换为 PDF 格式
- 将 PDF 文件转换为 CSV 格式
- 将选定的 PDF 页面转换为 CSV 文件
- 将 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 格式的步骤。
- 创建 ILoadOptions 类的实例。
- 通过使用之前创建的 ILoadOptions 实例创建 IWorkbook 类的对象来加载 CSV 文件。
- 使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名,Aspose::Cells::SaveFormat saveFormat) 方法。
以下是使用 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 格式的步骤。
- 使用 Document 类加载 PDF 文件。
- 创建 ExcelSaveOptions 类的实例。
- 使用 ExcelSaveOptions->setFormat (ExcelSaveOptions::ExcelFormat value) 方法将格式设置为 CSV。
- 使用 Document->Save (System::String outputFileName, System::SharedPtr) 保存 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 页面。为此,您可以按照以下步骤操作。
- 使用 Document 类加载 PDF 文件。
- 创建 ExcelSaveOptions 类的实例。
- 使用 ExcelSaveOptions->setFormat (ExcelSaveOptions::ExcelFormat value) 方法将格式设置为 CSV。
- 创建 Document 类的新对象来表示 CSV 文件。
- 使用 Document->getPages() 方法循环浏览 PDF 文件的页面。
- 在循环中,指定选择所需页面的条件。
- 使用 [Document->getPages()->Add (System::SharedPtr) 将页面添加到新创建的 Document 对象const & entity)]20 方法。
- 使用 Document->Save (System::String outputFileName, System::SharedPtr) 保存 CSV 文件options) 循环外的方法。
以下是在 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 文件。为此,您可以按照以下步骤操作。
- 使用 Document 类加载 PDF 文件。
- 创建 ExcelSaveOptions 类的实例。
- 使用 ExcelSaveOptions->setFormat (ExcelSaveOptions::ExcelFormat value) 方法将格式设置为 CSV。
- 使用 Document->getPages() 方法循环浏览 PDF 文件的页面。
- 在循环中,创建 Document 类的新对象来表示 CSV 文件。
- 使用 [Document->getPages()->Add (System::SharedPtr) 将页面添加到新创建的 Document 对象const & entity)]28 方法。
- 使用 Document->Save (System::String outputFileName, System::SharedPtr) 保存 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。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。