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