C++を使用してPDFをCSVに、CSVをPDFに変換する

PDFファイルは、インターネットを介してドキュメントを交換するための標準形式です。 PDFファイルのデータを処理してデータベースに追加する必要がある場合があります。このようなシナリオでは、PDFドキュメントをCSV形式に変換すると役立つ場合があります。一方、CSV形式の表形式のデータがあり、読み取り専用で誰かと共有したい場合があります。これは、CSVファイルをPDF形式に変換することで実現できます。この記事では、C++を使用してプログラムで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形式に変換する手順です。

以下は、C++を使用してCSVファイルをPDF形式に変換するためのサンプルコードです。

// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");

// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");

// CSVLoadOptionsオブジェクトを作成します
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形式に変換する手順は次のとおりです。

// 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ページを含める機能もあります。これを実現するには、次の手順に従います。

以下は、選択した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ファイルを表すDocumentクラスのインスタンスを作成します。
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++)
{
	// CSVファイルを表すDocumentクラスのインスタンスを作成します。
	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 forC++とAspose.PDF for C++は、それぞれExcelファイルとPDFファイルを操作するための強力なAPIです。 APIの公式ドキュメントにアクセスすると、APIを詳しく調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目