PDFファイルは、インターネットを介してドキュメントを交換するための標準形式です。 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(intrusive_ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat)メソッドを使用して、ファイルを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形式に変換する手順は次のとおりです。
- Documentクラスを使用してPDFファイルをロードします。
- ExcelSaveOptionsクラスのインスタンスを作成します。
- ExcelSaveOptions->set_Format(ExcelSaveOptions::ExcelFormat value)メソッドを使用して、フォーマットをCSVに設定します。
- Document->Save(System::String outputFileName, System::SharedPtr options)メソッドを使用して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->set_Format(ExcelSaveOptions::ExcelFormat value)メソッドを使用して、フォーマットをCSVに設定します。
- CSVファイルを表すDocumentクラスの新しいオブジェクトを作成します。
- Document->get_Pages()メソッドを使用して、PDFファイルのページをループします。
- ループ内で、目的のページを選択するための条件を指定します。
- Document->get_Pages(->Add(System::SharedPtr const&entity)メソッドを使用して、新しく作成されたDocumentオブジェクトにページを追加します。
- ループの外でDocument->Save(System::String outputFileName, System::SharedPtr options)メソッドを使用して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ファイルを表す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ファイルに変換することもできます。これを実現するには、次の手順に従います。
- Documentクラスを使用してPDFファイルをロードします。
- ExcelSaveOptionsクラスのインスタンスを作成します。
- ExcelSaveOptions->set_Format(ExcelSaveOptions::ExcelFormat value)メソッドを使用して、フォーマットをCSVに設定します。
- Document->get_Pages()メソッドを使用して、PDFファイルのページをループします。
- ループ内で、CSVファイルを表すDocumentクラスの新しいオブジェクトを作成します。
- Document->get_Pages()->Add(System::SharedPtr const&entity)メソッド。
- Document->Save(System::String outputFileName, System::SharedPtr options)メソッドを使用して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を詳しく調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。