Word文書からメディアを抽出する
.NETでWord文書からテキスト、画像、およびメタデータを抽出する方法
テキスト、画像、およびメタデータをWord文書から抽出することは、文書分析と処理に不可欠です。Aspose.Words for .NETを使用すると、開発者はプログラム的に文書の内容とプロパティを取得し、インデックス作成、アーカイブ、またはコンテンツ変換などのさまざまなユースケースに利用できます。
前提条件
- .NET SDKをインストールします。
- Aspose.Words NuGetパッケージを追加します:
dotnet add package Aspose.Words
- テキスト、画像、およびメタデータを含むWord文書(
document.docx
)を準備します。
Wordファイルからコンテンツを抽出するためのステップバイステップガイド
1. Word文書をロードする
using System;
using Aspose.Words;
class Program
{
static void Main()
{
// ステップ1: Word文書をロードする
string filePath = "document.docx";
Document doc = new Document(filePath);
// ステップ2、3、4は以下に追加されます
}
}
説明: このコードは、指定されたWord文書をメモリにロードし、さらなる処理のために準備します。
2. 文書からテキストを抽出する
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
// ステップ2: テキストを抽出する
string text = doc.GetText();
Console.WriteLine("抽出されたテキスト: " + text);
// ステップ3と4は以下に追加されます
}
}
説明: このコードは、ロードしたWord文書からすべてのテキストコンテンツを抽出し、それをコンソールに出力します。
3. 文書からメタデータを抽出する
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
string text = doc.GetText();
Console.WriteLine("抽出されたテキスト: " + text);
// ステップ3: メタデータを抽出する
Console.WriteLine("タイトル: " + doc.BuiltInDocumentProperties.Title);
Console.WriteLine("著者: " + doc.BuiltInDocumentProperties.Author);
Console.WriteLine("作成日: " + doc.BuiltInDocumentProperties.CreatedTime);
// ステップ4は以下に追加されます
}
}
説明: このコードは、Word文書からタイトル、著者、および作成日メタデータを抽出して表示します。
4. 文書から画像を抽出する
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
string text = doc.GetText();
Console.WriteLine("抽出されたテキスト: " + text);
Console.WriteLine("タイトル: " + doc.BuiltInDocumentProperties.Title);
Console.WriteLine("著者: " + doc.BuiltInDocumentProperties.Author);
Console.WriteLine("作成日: " + doc.BuiltInDocumentProperties.CreatedTime);
// ステップ4: 画像を抽出する
int imageCount = 0;
foreach (var shape in doc.GetChildNodes(NodeType.Shape, true))
{
if (shape is Shape { HasImage: true } imageShape)
{
string imageFilePath = $"Image_{++imageCount}.png";
imageShape.ImageData.Save(imageFilePath);
Console.WriteLine($"保存された画像: {imageFilePath}");
}
}
Console.WriteLine("コンテンツの抽出が完了しました。");
}
}
説明: このコードは、Word文書からすべての画像を抽出し、プロジェクトディレクトリにPNGファイルとして保存します。
5. ソリューションをテストする
document.docx
がプロジェクトディレクトリにあることを確認します。- プログラムを実行し、以下を確認します:
- コンソール出力に抽出されたテキスト。
- 出力されたメタデータの詳細。
- プロジェクトフォルダに保存された画像。
主要プラットフォームでのデプロイと実行方法
Windows
- .NETランタイムをインストールし、アプリケーションをデプロイします。
- コマンドラインからアプリケーションを実行してテストします。
Linux
- .NETランタイムをインストールします。
- ターミナルコマンドを使用してアプリケーションを実行するか、サーバーにホストします。
macOS
- Kestrelを使用してアプリケーションを実行するか、クラウドサービスにデプロイします。
一般的な問題と修正
- 画像が抽出されない:
- 文書に埋め込まれた画像が含まれていることを確認し、外部リンクの画像ではないことを確認します。
- メタデータが欠落している:
- 文書にタイトルや著者などのメタデータプロパティが設定されていることを確認します。
- 大きなファイルの処理:
- 文書の特定のセクションを処理するなど、メモリ効率の良いアプローチを使用します。
このガイドを使用すると、Aspose.Words for .NETを利用してWord文書から価値のあるコンテンツをプログラム的に抽出できます。