PDFは、インターネットを介して情報を共有するための一般的な形式です。ほとんどの場合、PDFファイルにはテキストやその他の要素とともに画像が含まれています。さらに処理するためにPDFファイルからこれらの画像を抽出する必要があるシナリオがあるかもしれません。そのために、この記事では、C++を使用してPDFファイルから画像を抽出する方法を説明します。

PDFファイルから画像を抽出するためのC++API

Aspose.PDF for C++は、PDFドキュメントを作成、読み取り、変更できるC++ライブラリです。さらに、APIはPDFファイルからの画像の抽出をサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.PDF.Cpp

C++を使用してPDFファイルから画像を抽出する

以下は、PDFファイルから画像を抽出する手順です。

  • Documentクラスを使用してPDFドキュメントをロードします。
  • Document->get_Pages()メソッドを使用してドキュメントのページを取得し、それらを繰り返し処理します。
  • page->get_Resources()->get_Images()メソッドを使用して各ページの画像を取得し、それらを繰り返し処理します。
  • 画像ごとにFileStreamオブジェクトを作成し、JPEG、PNGなどで保存します。

次のサンプルコードは、C++を使用してPDFファイルから画像を抽出する方法を示しています。

// PDFドキュメントをロードする
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\SampleImages2.pdf");

// イメージカウンターを初期化する
int imageCounter = 1;

// ドキュメントのページを繰り返し処理します
for (auto page : pdfDocument->get_Pages())
{
	// ページの画像を繰り返し処理します
	for (auto image : page->get_Resources()->get_Images())
	{
		// FileStreamのインスタンスを作成します
		System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(String::Format(u"OutputDirectory\\Image{0}.jpg", imageCounter));

		// 画像を保存する
		image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());

		// FileStreamを閉じます
		outputImage->Close();

		// 画像カウンターをインクリメントする
		imageCounter++;
	}
}

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C++を使用してPDFファイルから画像を抽出する方法を学習しました。これを実現するために、堅牢で使いやすいAspose.PDF for C++APIを使用しました。 APIは、PDFファイルを操作するための一連の追加機能を提供します。これらの機能は、公式ドキュメントにアクセスして詳細に調べることができます。 APIのいずれかの側面について質問がある場合は、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目