PowerPoint C#からテキストを抽出する

テキスト分析を実行するために、PowerPointスライドからテキストを抽出する必要がある場合があります。一方、さらに処理するために、テキストを抽出してファイルまたはデータベースに保存することもできます。これに従って、この記事では、C#を使用してPowerPointプレゼンテーションからテキストを抽出する方法について説明します。特に、特定のスライドまたはプレゼンテーション全体からテキストを抽出する方法を学習します。

PowerPoint PPTXからテキストを抽出するC#API

PowerPointプレゼンテーションを操作するために、AsposeはAspose.Slides for .NETを提供しています。上記のAPIは、.NETアプリケーションにPowerPoint自動化機能を実装するように設計されています。また、PPTXプレゼンテーションからテキストを抽出する簡単な方法もいくつか提供します。 APIをダウンロードするか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.Slides.NET

C#でPowerPointスライドからテキストを抽出する

以下は、PowerPointプレゼンテーションのスライドからテキストを抽出する手順です。

  • Presentationクラスを使用してプレゼンテーションをロードします。
  • SlideUtil.GetAllTextBoxes()メソッドを使用して、スライドからITextFrame配列にすべてのテキストフレームを取得します。
  • ITextFrameをループし、ITextFrame.Paragraphsプロパティを使用してそのテキストにアクセスします。
  • 段落の各Portionからテキストを取得して印刷します。

次のコードサンプルは、C#を使用してPowerPointスライドからテキストを抽出する方法を示しています。

//PPTXファイルを表すPresentationExクラスを初期化する
Presentation pptxPresentation = new Presentation("demo.pptx");

//最初のスライドからTextFrameExオブジェクトの配列を取得します
ITextFrame[] textFramesSlideOne = SlideUtil.GetAllTextBoxes(pptxPresentation.Slides[0]);

//TextFramesの配列をループします
for (int i = 0; i < textFramesSlideOne.Length; i++)
{
    //現在のTextFrameの段落をループする
    foreach (Paragraph para in textFramesSlideOne[i].Paragraphs)
    {
        //現在の段落の一部をループする
        foreach (Portion port in para.Portions)
        {
            //現在の部分にテキストを表示する
            Console.WriteLine(port.Text);

            //テキストのフォントの高さを表示する
            Console.WriteLine(port.PortionFormat.FontHeight);

            //テキストのフォント名を表示する
            Console.WriteLine(port.PortionFormat.LatinFont.FontName);
        }
    }
}

C#でPowerPointプレゼンテーションからテキストを抽出する

Aspose.Slides for .NETを使用して、PowerPointプレゼンテーション全体からテキストを抽出することもできます。この操作を実行する手順は次のとおりです。

  • Presentationクラスを使用してプレゼンテーションをロードします。
  • SlideUtil.GetAllTextFrames()メソッドを使用して、プレゼンテーション内のすべてのテキストフレームを取得します。
  • ITextFrameをループして、そのParagraphsにアクセスします。
  • 段落の部分にアクセスして、テキストを印刷します。

次のコードサンプルは、PowerPointプレゼンテーションからテキストを抽出する方法を示しています。

//PPTXファイルを表すInstatiatePresentationクラス
Presentation pptxPresentation = new Presentation("demo.pptx");

//PPTXのすべてのスライドからITextFrameオブジェクトの配列を取得します
ITextFrame[] textFramesPPTX = Aspose.Slides.Util.SlideUtil.GetAllTextFrames(pptxPresentation, true);

//TextFramesの配列をループします
for (int i = 0; i < textFramesPPTX.Length; i++)
{
	//現在のITextFrameの段落をループする
	foreach (IParagraph para in textFramesPPTX[i].Paragraphs)
	{
		//現在のIParagraphの部分をループします
		foreach (IPortion port in para.Portions)
		{
			//現在の部分にテキストを表示する
			Console.WriteLine(port.Text);

			//テキストのフォントの高さを表示する
			Console.WriteLine(port.PortionFormat.FontHeight);

			//テキストのフォント名を表示する
			if (port.PortionFormat.LatinFont != null)
				Console.WriteLine(port.PortionFormat.LatinFont.FontName);
		}
	}
}

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

評価の制限なしでAPIを試してみたい場合は、無料の一時ライセンスを取得できます。

結論

この記事では、PowerPointプレゼンテーションからテキストを抽出する方法を学びました。特に、C#を使用して特定のスライドまたはプレゼンテーション全体からテキストを抽出する方法を見てきました。 ドキュメントを使用して、Aspose.Slides for .NETの詳細を調べることができます。ご不明な点やご不明な点がございましたら、フォーラムからお知らせください。

関連項目