Microsoft PowerPointには、プレゼンテーションに図形を追加する機能があります。形状は、データの流れを示したり、プロセスのさまざまなフェーズを示したりするなどのシナリオで役立ちます。楕円、線、長方形などの形状を使用し、コネクタを使用してそれらを接続できます。プログラムでPowerPointスライドに図形を追加する必要があるシナリオに遭遇するかもしれません。そのために、この記事では、C++を使用してPowerPointプレゼンテーションで図形を操作する方法を説明します。
- PowerPointプレゼンテーションで図形を操作するためのC++API
- PowerPointスライドに図形を追加する
- 接続された図形をPowerPointスライドに追加する
- PowerPointスライドのクローンシェイプ
- C++を使用してPowerPointスライドから図形を削除する
- サポートされているPowerPointシェイプ
- 無料ライセンスを取得する
PowerPointプレゼンテーションで図形を操作するためのC++API
Aspose.Slides for C++は、PowerPointファイルの作成、読み取り、操作をサポートするネイティブC++ライブラリです。 APIは、PowerPointプレゼンテーションでの図形の操作もサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Slides.Cpp
PowerPointスライドに図形を追加する
形状を追加するには、APIが提供するISlide->getShapes()->AddAutoShape()メソッドを使用します。以下は、PowerPointスライドに図形を追加する手順です。
- まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
- Presentation->getSlides()->idx_get(int32_t index)メソッドを使用して、図形を追加するスライドを取得します。
- ISlide->getShapes()->AddAutoShape(ShapeType shapeType, float x, float y, float width, float height)メソッドを使用して形状を追加します。
- 最後に、Presentation->Save(System::String name, Export::SaveFormat format)メソッドを使用してプレゼンテーションを保存します。
以下は、C++を使用してPowerPointスライドに図形を追加するためのサンプルコードです。
// ファイルパス
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddShapePresentation.pptx";
// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 最初のスライドを取得
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 形状を追加します
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);
// プレゼンテーションファイルを保存する
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
接続された図形をPowerPointスライドに追加する
コネクタを使用して形状を接続できます。コネクタを作成するには、ISlide->getShapes()->AddConnector()メソッドを使用できます。以下は、PowerPointスライドに接続された図形を追加する手順です。
- まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
- Presentation->getSlides()->idx_get(int32_t index)メソッドを使用して、図形を追加するスライドを取得します。
- ISlide->getShapes()->AddAutoShape(ShapeType shapeType, float x, float y, float width, float height)メソッドを使用して形状を追加します。
- ISlide->getShapes()->AddConnector(ShapeType shapeType, float x, float y, float width, float height)メソッドを使用してコネクタを追加します。
- IConnector->setStartShapeConnectedTo(System::SharedPtr value)およびIConnector->setEndShapeConnectedTo(System::SharedPtr value)メソッド。
- IConnector->Reroute()メソッドを呼び出して、最短の自動接続パスを作成します。
- 最後に、Presentation->Save(System::String name, Export::SaveFormat format)メソッドを使用してプレゼンテーションを保存します。
以下は、C++を使用してPowerPointスライドに接続された図形を追加するためのサンプルコードです。
// ファイルパス
const String sourceFilePath = u"SourceDirectory\\SamplePresentation4.pptx";
const String outputFilePath = u"OutputDirectory\\AddConnectedShapesPresentation.pptx";
// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 最初のスライドを取得
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 最初の形状を追加します
SharedPtr<IAutoShape> ellipse = slide->get_Shapes()->AddAutoShape(ShapeType::Ellipse, 50, 150, 150, 50);
// 2番目の形状を追加します
SharedPtr<IAutoShape> rectangle = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 300, 100, 100);
// コネクタを追加します
SharedPtr<IConnector> connector = slide->get_Shapes()->AddConnector(ShapeType::BentConnector2, 0, 0, 10, 10);
// 形状をコネクタで結合します
connector->set_StartShapeConnectedTo(ellipse);
connector->set_EndShapeConnectedTo(rectangle);
// 再ルーティングを呼び出して、図形間の自動最短パスを設定します
connector->Reroute();
// プレゼンテーションファイルを保存する
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
PowerPointスライドのクローンシェイプ
Aspose.Slides for C++ APIを使用して、既存の図形のクローンを作成することもできます。図形のクローンを作成するには、APIが提供するShapeCollection->InsertClone()メソッドを使用します。以下は、あるスライドから別のスライドに図形を複製する手順です。
- まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
- Presentation->getSlides()->idx_get(int32_t index)メソッドを使用してソーススライドを取得します。
- ISlide->getShapes()メソッドを使用して、ソーススライドの形状にアクセスします。
- ISlide->getShapes()メソッドを使用して、目的のスライドの形状にアクセスします。
- IShapeCollection->InsertClone(int32_t index, System::SharedPtr sourceShape, float x, float y)メソッド。
- 最後に、Presentation->Save(System::String name, Export::SaveFormat format)メソッドを使用してプレゼンテーションを保存します。
以下は、C++を使用してPowerPointスライドの図形を複製するためのサンプルコードです。
// ファイルパス
const String sourceFilePath = u"SourceDirectory\\ShapePresentation2.pptx";
const String outputFilePath = u"OutputDirectory\\CloneShapePresentation.pptx";
// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 最初のスライドにアクセスする
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// 選択したスライドの図形コレクションにアクセスする
SharedPtr<IShapeCollection> sourceShapes = slide->get_Shapes();
// 宛先スライドから形状コレクションを取得する
SharedPtr<ISlide> destSlide = presentation->get_Slides()->idx_get(1);
SharedPtr<IShapeCollection> destShapes = destSlide->get_Shapes();
// クローン形状
destShapes->InsertClone(0, sourceShapes->idx_get(1), 50, 150);
// プレゼンテーションファイルを保存する
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
C++を使用してPowerPointスライドから図形を削除する
以下は、PowerPointスライドから図形を削除する手順です。
- まず、Presentationクラスを使用してPowerPointプレゼンテーションをロードします。
- Presentation->getSlides()->idx_get(int32_t index)メソッドを使用して、図形を削除する場所からスライドを取得します。
- IShape->getAlternativeText()メソッドを使用して代替テキストを照合することにより、必要な形状を見つけます。
- ISlide->getShapes()->Remove(System::SharedPtr shape)メソッド。
- 最後に、Presentation->Save(System::String name, Export::SaveFormat format)メソッドを使用してプレゼンテーションを保存します。
以下は、C++を使用してPowerPointスライドから図形を削除するためのサンプルコードです。
// ファイルパス
const String sourceFilePath = u"SourceDirectory\\ShapePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\RemoveShapePresentation.pptx";
// プレゼンテーションファイルをロードする
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 最初のスライドにアクセスする
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
String alttext = u"User Defined";
int iCount = slide->get_Shapes()->get_Count();
for (int i = 0; i < iCount; i++)
{
// 形状にアクセスする
SharedPtr<Shape> ashape = DynamicCast<Aspose::Slides::Shape>(slide->get_Shapes()->idx_get(i));
if (String::Compare(ashape->get_AlternativeText(), alttext, StringComparison::Ordinal) == 0)
{
// 形を取り除く
slide->get_Shapes()->Remove(ashape);
}
}
// プレゼンテーションファイルを保存する
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
サポートされているPowerPointシェイプ
Aspose.Slides for C++は、操作できる多くの図形をサポートしています。以下は、サポートされている形状の一部のリストです。
ShapeType列挙値を表示すると、サポートされている形状の完全なリストを表示できます。
無料ライセンスを取得する
無料の一時ライセンスをリクエストして、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用してPowerPointプレゼンテーションで図形を操作する方法を学習しました。具体的には、PowerPointスライドから図形を追加、複製、および削除する方法を学習しました。さらに、コネクタを使用して図形を接続する方法を見てきました。図形の操作に加えて、Aspose.Slides for C++は、PowerPointプレゼンテーションを強化するための多くの追加機能を提供します。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。