チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.Presentation for .NET»段落とテキスト»C#/VB.NET:PowerPoint プレゼンテーションからテキストを抽出する方法
2023-05-23

C#/VB.NET:PowerPoint プレゼンテーションからテキストを抽出する方法

PowerPoint 文書内に多くのメディアファイルや画像が含まれており、他者にテキスト校正のために送信する場合、大きなファイルサイズのため転送速度が遅いことがあります。そのような場合は、まず PowerPoint からテキストを Word 文書またはメモ帳に抽出し、テキスト内容のみを送信することが良いです。また、抽出されたテキスト内容は、将来の参照のためにアーカイブまたはバックアップすることもできます。この記事では、Spire.Presentation for .NET を使用して、C# および VB.NET で PowerPoint プレゼンテーションからテキストを抽出する方法を示します。

Spire.Presentation for.NET をインストールします

まず、Spire.Presentation for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Presentation

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

PowerPoint プレゼンテーション内のテキスト情報を共有または配信する必要がある場合があります。その際には、テキスト抽出操作が必要です。以下は、すべてのスライドからテキストを抽出して TXT ファイルに保存する手順です。

  • Presentation クラスのインスタンスを初期化します。
  • Presentation.LoadFromFile() メソッドを使用してサンプル PowerPoint 文書を読み込みます。
  • StringBuilder インスタンスを作成します。
  • 文書内の各スライドをループし、各スライド内のすべての図形をループします。
  • 図形が IAutoShape タイプであるかどうかを判断します。はいの場合は、各図形のすべての段落をループし、TextParagraph.Text プロパティを使用して段落テキストを取得します。
  • StringBuilder.AppendLine() メソッドを使用して、抽出したテキストを StringBuilder インスタンスに追加します。
  • 新しい txt ファイルを作成し、File.WriteAllText() メソッドを使用して抽出したテキストをこのファイルに書き込みます。
  • C#
  • VB.NET
using Spire.Presentation;
using System.IO;
using System.Text;
namespace ExtractText
{
    class Program
    {
        static void Main(string[] args)
        {
            //Presentationクラスのインスタンスを初期化する
            Presentation presentation = new Presentation();

            //サンプル PowerPoint 文書を読み込む
            presentation.LoadFromFile("sample.pptx");
            //StringBuilderインスタンスを作成する
            StringBuilder sb = new StringBuilder();

            //文書内の各スライドをループする
            foreach (ISlide slide in presentation.Slides)
            {
                //各スライド内のすべての図形をループする
                foreach (IShape shape in slide.Shapes)
                {
                    //図形が IAutoShape タイプであるかどうかを判断する
                    if (shape is IAutoShape)
                    {
                        //各図形のすべての段落をループする
                        foreach (TextParagraph tp in (shape as IAutoShape).TextFrame.Paragraphs)
                        {
                            //抽出したテキストを StringBuilder インスタンスに追加する
                            sb.AppendLine(tp.Text);
                        }
                    }
                }
            }
            //抽出されたテキストを保存するための新しいtxtファイルを作成する
            File.WriteAllText("ExtractText.txt", sb.ToString());
           
            //ドキュメントを閉じる
            presentation.Dispose();
        }
    }
}
Imports Spire.Presentation
Imports System.IO
Imports System.Text

Namespace ExtractText
    Class Program
        Private Shared Sub Main(ByVal args() As String)

            'Presentationクラスのインスタンスを初期化する
            Dim presentation As Presentation = New Presentation

            'サンプル PowerPoint 文書を読み込む
            presentation.LoadFromFile("sample.pptx")

            'StringBuilderインスタンスを作成する
            Dim sb As StringBuilder = New StringBuilder

            '文書内の各スライドをループする
            For Each slide As ISlide In presentation.Slides

                '各スライド内のすべての図形をループする
                For Each shape As IShape In slide.Shapes

                    '図形が IAutoShape タイプであるかどうかを判断する
                    If (TypeOf shape Is IAutoShape) Then

                        '各図形のすべての段落をループする
                        For Each tp As TextParagraph In CType(shape, IAutoShape).TextFrame.Paragraphs

                            '抽出したテキストを StringBuilder インスタンスに追加する
                            sb.AppendLine(tp.Text)
                        Next
                    End If
                Next
            Next

            '抽出されたテキストを保存するための新しいtxtファイルを作成する
            File.WriteAllText("ExtractText.txt", sb.ToString)
            
            'ドキュメントを閉じる
            presentation.Dispose()
        End Sub
    End Class
End Namespace

C#/VB.NET:PowerPoint プレゼンテーションからテキストを抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 416 times