パワーポイントのプレゼンテーションを作成するC++

MS PowerPointは、テキスト、グラフィックス、アニメーション、チャート、およびその他のいくつかの要素を含む魅力的なプレゼンテーションを作成できる機能豊富なアプリケーションです。この投稿では、C++アプリケーション内に基本的なPowerPoint自動化機能を実装する方法を学習します。特に、PowerPointプレゼンテーションを作成し、C++を使用してテキスト、画像、グラフ、および表をスライドに追加する方法を理解するようになります。

C++ PowerPoint API

Aspose.Slides for C++は、C++アプリケーション内のPowerPointプレゼンテーション操作機能を自動化するように設計されています。 APIを使用すると、PowerPointプレゼンテーションをシームレスに作成、編集、または変換できます。 APIファイルの完全なパッケージをダウンロードするか、NuGetから取得できます。

C++でPowerPointプレゼンテーションを作成する

Aspose.Slides for C++を使用して空のPowerPointプレゼンテーションを作成することから始めましょう。この操作を実行する手順は次のとおりです。

次のコードサンプルは、C++を使用してPowerPointプレゼンテーションを作成する方法を示しています。

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// ドキュメントディレクトリへのパス。
	const String outPath = u"../out/SampleChartresult.pptx";

	//PPTXファイルを表すPresentationクラスをインスタンス化します
	SharedPtr<Presentation> pres = MakeObject<Presentation>();
	
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// タイプラインのオートシェイプを追加します
	slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
	
	//プレゼンテーションの保存
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

C++でプレゼンテーションにスライドを追加する

PowerPointプレゼンテーションを作成したら、スライドを挿入できます。以下は、PowerPointプレゼンテーションにスライドを追加する手順です。

次のコードサンプルは、C++を使用してPowerPointプレゼンテーションにスライドを追加する方法を示しています。

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// ドキュメントディレクトリへのパス。
	const String outPath = u"../templates/AddSlides.pptx";

	// プレゼンテーションファイルを表すPresentationクラスをインスタンス化します
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	// SlideCollectioncalssをインスタンス化します
	SharedPtr<ISlideCollection> slds = pres->get_Slides();

	for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
	{
		// スライドコレクションに空のスライドを追加します
		slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));

	}

	// PPTXファイルをディスクに保存します
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

スライドの操作の詳細については、スライドの追加、フォーマット、および操作にアクセスしてください。

C++を使用してPowerPointスライドにテキストを追加する

それでは、PowerPointプレゼンテーションのスライドにテキストを追加しましょう。このためには、スライドにテキストボックスを挿入する必要があります。この操作を実行する手順は次のとおりです。

次のコードサンプルは、C++を使用してPowerPointプレゼンテーションのスライドにテキストを追加する方法を示しています。

// ドキュメントディレクトリへのパス。
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";

// 目的のプレゼンテーションをロードします
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 最初のスライドにアクセスする
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);

// 長方形タイプのオートシェイプを追加します
SharedPtr<IAutoShape>  ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);

// TextFrameを長方形に追加します
ashp->AddTextFrame(u" ");

// テキストフレームへのアクセス
SharedPtr<ITextFrame>  txtFrame = ashp->get_TextFrame();

// テキストフレームの段落オブジェクトを作成します
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);

// 段落の部分オブジェクトを作成する
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
	
// PPTXをディスクに保存
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

プレゼンテーションでのテキストの操作の詳細については、テキストの追加、フォーマット、および操作にアクセスしてください。

C++を使用してプレゼンテーションでテーブルを作成する

以下は、Aspose.Slides forC++を使用してPowerPointプレゼンテーションのスライドにテーブルを追加する手順です。

  • Presentationクラスのインスタンスを作成します。
  • ISlideオブジェクトへのスライドの参照を取得します。
  • 幅を指定して、列と行の配列を定義します。
  • ISlide->getShapes()->AddTable()メソッドを使用して、スライドにテーブルを追加します。
  • 各セルを繰り返し処理して、上下左右の境界線に書式を適用します。
  • 必要に応じてセルを結合します。
  • セルのテキストフレームにアクセスして、テキストを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

次のコードサンプルは、C++を使用してPowerPointプレゼンテーションでテーブルを作成する方法を示しています。

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// ドキュメントディレクトリへのパス。
const String outPath = u"../out/TableFromScratch_out.pptx";

// 目的のプレゼンテーションをロードします
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// 最初のスライドにアクセスする
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);

// 幅のある列と高さのある行を定義する
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);

// スライドにテーブル形状を追加
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);


// 各セルの境界線形式を設定します
for (int x = 0; x < table->get_Rows()->get_Count(); x++)
{
	SharedPtr<IRow> row = table->get_Rows()->idx_get(x);
	for (int y = 0; y < row->get_Count(); y++)
	{
		SharedPtr<ICell> cell = row->idx_get(y);

		cell->get_BorderTop()->get_FillFormat()->set_FillType(FillType::Solid);
		cell->get_BorderTop()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
		cell->get_BorderTop()->set_Width(5);

		cell->get_BorderBottom()->get_FillFormat()->set_FillType(FillType::Solid);
		cell->get_BorderBottom()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
		cell->get_BorderBottom()->set_Width(5);

		cell->get_BorderLeft()->get_FillFormat()->set_FillType(FillType::Solid);
		cell->get_BorderLeft()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
		cell->get_BorderLeft()->set_Width(5);

		cell->get_BorderRight()->get_FillFormat()->set_FillType(FillType::Solid);
		cell->get_BorderRight()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
		cell->get_BorderRight()->set_Width(5);

	}

}

// セルの結合(1、1)x(2、1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);

// セルの結合(1、2)x(2、2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);


// PPTXをディスクに保存
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

テーブルの操作の詳細については、テーブルの追加、更新、および操作にアクセスしてください。

C++を使用してプレゼンテーションでグラフを作成する

Aspose.Slides for C++は、分散、ツリーマップ、ヒストグラム、etcなどのさまざまな種類のグラフをサポートしています。デモンストレーションのために、通常のチャートを作成しましょう。この操作を実行する手順は次のとおりです。

  • Presentationクラスのインスタンスを作成します。
  • グラフを追加するスライドの参照を取得します。
  • ISlide->getShapes()->AddChart()メソッドを使用して、デフォルトのデータと目的のタイプのグラフを追加します。
  • IChartオブジェクトでチャートの参照を取得します。
  • チャートデータをクリアし、新しいシリーズとカテゴリを追加します。
  • チャートシリーズの新しいチャートデータを追加します。
  • チャートシリーズの塗りつぶしの色を設定します。
  • チャートシリーズのラベルを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

次のコードサンプルは、C++を使用してPowerPointプレゼンテーションにグラフを挿入する方法を示しています。

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// ドキュメントディレクトリへのパス。
	const String outPath = u"../out/NormalCharts_out.pptx";

	//PPTXファイルを表すPresentationクラスをインスタンス化します
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	//最初のスライドにアクセスする
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// デフォルトデータでチャートを追加
	SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);


	// チャートデータシートのインデックスを設定する
	int defaultWorksheetIndex = 0;

	// チャートデータワークシートの取得
	SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

	// チャートタイトルの設定
	chart->get_ChartTitle()->AddTextFrameForOverriding(u"Sample Title");
	chart->get_ChartTitle()->get_TextFrameForOverriding()->get_TextFrameFormat()->set_CenterText ( NullableBool::True);
	chart->get_ChartTitle()->set_Height(20);
	chart->set_HasTitle( true);

	// デフォルトで生成されたシリーズとカテゴリを削除する
	chart->get_ChartData()->get_Series()->Clear();
	chart->get_ChartData()->get_Categories()->Clear();
	int s = chart->get_ChartData()->get_Series()->get_Count();
	s = chart->get_ChartData()->get_Categories()->get_Count();


	// 今、新しいシリーズを追加します
	chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
	chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 2, ObjectExt::Box<System::String>(u"Series 2")), chart->get_Type());

	// カテゴリを追加する
	chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<System::String>(u"Caetegoty 1")));
	chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<System::String>(u"Caetegoty 2")));
	chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<System::String>(u"Caetegoty 3")));

	
	// 最初のチャートシリーズを取る
	SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

	// 系列データを入力しています
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(20)));
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(50)));
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(30)));

	// シリーズの塗りつぶし色の設定
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());


	// 2番目のチャートシリーズを取る
	 series = chart->get_ChartData()->get_Series()->idx_get(1);

	// 系列データを入力しています
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 2, ObjectExt::Box<double>(30)));
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(10)));
	series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(60)));

	// シリーズの塗りつぶし色の設定
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());


	// 最初のラベルにはカテゴリ名が表示されます
	SharedPtr<IDataLabel> lbl = series->get_DataPoints()->idx_get(0)->get_Label();
	lbl->get_DataLabelFormat()->set_ShowCategoryName(true);

	lbl = series->get_DataPoints()->idx_get(1)->get_Label();
	lbl->get_DataLabelFormat()->set_ShowSeriesName (true);

	// 3番目のラベルの値を表示
	lbl = series->get_DataPoints()->idx_get(2)->get_Label();
	lbl->get_DataLabelFormat()->set_ShowValue (true);
	lbl->get_DataLabelFormat()->set_ShowSeriesName(true);
	lbl->get_DataLabelFormat()->set_Separator (u"/");

	// プレゼンテーションファイルをディスクに書き込む
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

チャートの操作の詳細については、チャートの追加、フォーマット、および操作を参照してください。

C++でPowerPointプレゼンテーションを開く

コンテンツを編集するために、既存のPowerPointプレゼンテーションを開くこともできます。このためには、以下の手順に従うことができます。

  • Presentationクラスを使用して、ファイル名を指定してPPTXファイルをロードします。
  • プレゼンテーションの内容を更新します。
  • Presentation->Save(string, SaveFormat)メソッドを使用して、更新されたファイルを保存します。

次のコードサンプルは、C++を使用して既存のPowerPointプレゼンテーションを開く方法を示しています。

// ドキュメントディレクトリへのパス
const String templatePath = u"../templates/AccessSlides.pptx";

// PPTXファイルを表すPresentationクラスをインスタンス化します
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// スライド数を印刷する
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());

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

評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。

結論

この記事では、C++アプリケーション内からPowerPointプレゼンテーションを作成する方法を学習しました。ステップバイステップガイドとコードサンプル、およびAPIリファレンスは、プレゼンテーションを最初から作成し、スライド、テキスト、表、およびチャートをその中に挿入する方法を示しています。 ドキュメントを使用して、APIの詳細を調べることができます。

関連項目