画像を使用して、製品の写真からワークフローやフローチャートに至るまで、さまざまなものを表示できます。 PDFファイルには、保持している情報の種類に基づいた画像を含めることができます。たとえば、椅子の設置ガイドには、椅子の組み立て方法を示す写真が含まれています。プログラムでPDFファイルの画像を操作する必要があるシナリオがあるかもしれません。このような場合、この記事では、C++を使用してPDFファイルの画像を操作する方法を説明します。
- PDFファイルの画像を操作するためのC++API
- C++を使用してPDFファイルに画像を追加する
- C++を使用してPDFファイルから画像を抽出する
- C++を使用して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()->idx_get(int32_t index)メソッドを使用して、画像を追加するページを取得します。
- Rectangleクラスのインスタンスを作成します。
- Page->AddImage(System::String imagePath、System::SharedPtrAspose::Pdf::Rectangle長方形)メソッド。
- Page->AddImage(System::String imagePath, System::SharedPtrAspose::Pdf::Rectangle rectangle)メソッドを使用して画像をページに追加します。
- Document->Save(System::String outputFileName)メソッドを使用してPDFファイルを保存します。
次のサンプルコードは、C++を使用してPDFファイルに画像を追加する方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// 最初のページを取得する
auto page = pdfDocument->get_Pages()->idx_get(1);
// Rectangleクラスのインスタンスを作成します
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// ページに画像を追加
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");
C++を使用してPDFファイルから画像を抽出する
PDFファイルから画像を抽出するには、以下の手順に従ってください。
- Documentクラスを使用してPDFファイルをロードします。
- Document->get_Pages()->idx_get(int32_t index)->getResources()->get_Images()->idx_get(int32_t index)メソッドを使用して画像を抽出します。
- FileStreamクラスのインスタンスを作成して、出力画像を保存します。
- XImage->Save(System::SharedPtrSystem::IO::Stream stream, System::SharedPtrSystem::Drawing::Imaging::ImageFormat format)メソッドを使用して画像を保存します。
- ストリームを閉じます。
次のサンプルコードは、C++を使用してPDFファイルから画像を抽出する方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// 特定の画像を抽出する
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);
// ストリームオブジェクトを作成して、出力画像を保存します
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");
// 出力画像を保存します
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());
// ストリームを閉じる
outputImage->Close();
C++を使用してPDFファイルから画像を削除する
以下は、C++を使用してPDFファイルから画像を削除する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- Document->get_Pages()->idx_get(int32_t index)->get_Resources()->get_Images()->Delete(int32t index)メソッドを使用して特定の画像を削除します。
- Document->Save(System::String outputFileName)メソッドを使用してPDFファイルを保存します。
次のサンプルコードは、C++を使用してPDFファイルから特定の画像を削除する方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// 特定の画像を削除する
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");
C++を使用してPDFファイルの画像を置き換える
PDFファイル内の既存の画像を置き換えるには、以下の手順に従います。
- Documentクラスを使用してPDFファイルをロードします。
- FileStreamクラスを使用して新しい画像を開きます。
- Document->get_Pages()->idx_get(int32_t index)->get_Resources()->get_Images()->Replace(int32_t index, System::SharedPtrSystem::IO::Stream stream)メソッドを使用して古いイメージを置き換えます。
- ストリームを閉じます。
- Document->Save(System::String outputFileName)メソッドを使用してPDFファイルを保存します。
次のコードは、C++を使用してPDFファイルの画像を置き換える方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// FileStreamで新しい画像を開きます
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");
// 古い画像を置き換えます
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);
// ストリームを閉じる
newImage->Close();
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用してPDFファイルの画像を操作する方法を学習しました。具体的には、Aspose.PDF for C++ APIを使用して、PDFファイルから画像を追加、抽出、置換、および削除する方法を学習しました。 APIは、PDFファイルを操作するための一連の追加機能を提供します。これらの機能は、公式ドキュメントにアクセスして詳細に調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。