PDF 文件是通過 Internet 交換文檔的標準格式。在某些情況下,您可能需要處理 PDF 文件中的數據並將其添加到數據庫中。對於此類情況,將 PDF 文檔轉換為 CSV 格式可能會有所幫助。另一方面,您可能有一些 CSV 格式的表格數據,您希望以只讀方式與他人共享這些數據。您可以通過將 CSV 文件轉換為 PDF 格式來實現此目的。在本文中,您將學習如何使用 C++ 以編程方式相互轉換 PDF 和 CSV 文件。
- 用於將 CSV 轉換為 PDF 以及將 PDF 轉換為 CSV 格式的 C++ API
- 將 CSV 文件轉換為 PDF 格式
- 將 PDF 文件轉換為 CSV 格式
- 將選定的 PDF 頁面轉換為 CSV 文件
- 將 PDF 頁面轉換為單個 CSV 文件
- 獲得免費許可證
用於將 CSV 轉換為 PDF 以及將 PDF 轉換為 CSV 格式的 C++ API
要實現這些轉換,您將需要 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選項) 方法。
以下是使用 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 const & entity) 方法。
- 使用 Document->Save (System::String outputFileName, System::SharedPtr options) 循環外的方法。
以下是將所選 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);
// 創建 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 const & entity) 方法。
- 使用 Document->Save (System::String outputFileName, System::SharedPtr選項) 方法。
以下是使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。