前回の投稿では、Javaでドキュメントから画像を抽出する方法について説明しました。今日は、C#を使用して同じ目的を達成することを目指しています。最後の投稿にアクセスしていなくても心配ありません。この記事では、ドキュメント解析.NET APIを使用して、C#アプリケーションでPDF、Excel、PowerPoint、およびWordドキュメントからプログラムで画像を抽出する方法を学習します。
ここでは、次のトピックについて説明します。
- 画像、テキスト、メタデータの抽出.NET API
- PDFドキュメントからの画像抽出
- Word、Excel、PowerPointドキュメントから画像を抽出
- 特定のページから画像を抽出
- 画像抽出でサポートされている形式
画像、テキスト、メタデータの抽出.NET API
GroupDocs.Parser for .NETは、ドキュメントの解析とデータ抽出の.NETAPIです。 ドキュメントの解析と画像、テキストの抽出、ワードプロセッシングドキュメント、スプレッドシート、プレゼンテーション、アーカイブからのメタデータをサポートします。 メールドキュメント。記事の最後に、画像抽出用のAPIでサポートされているドキュメント形式が言及されています。
この記事ではこのAPIを使用するため、そのバイナリをダウンロードするか、NuGetからAPIをインストールして環境を準備することをお勧めします。
C#でPDFドキュメントから画像を抽出する
これらの簡単な手順に従うことで、PDFドキュメントからすべての画像を簡単に取得できます。
- Parserクラスオブジェクトをソースドキュメントでインスタンス化します。
- ** Parser**クラスのGetImagesメソッドを呼び出して、PageImageAreaオブジェクト内のすべての画像のコレクションを取得します。
- ** PageImageArea **を繰り返し処理して、すべての画像を取得します。
- PageImageAreaの保存メソッドを使用して画像をディスクに保存します。
抽出された画像は、** BMP 、 GIF 、 JPEG 、 PNG 、およびWebP**形式で保存できます。手順全体を示すために、完全なコードを以下に示します。
// GroupDocs.Parser for .NETを使用して、Word、Excel、PPT、PDFからC#で画像を抽出します
using (Parser parser = new Parser("path/document.pdf"))
{
IEnumerable<PageImageArea> images = parser.GetImages();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 取得した画像を繰り返し処理します
foreach (PageImageArea image in images)
{
// 画像を保存し、ページインデックス、長方形、画像タイプを印刷します。
Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
C#でWord、Excel、PowerPointファイルから画像を抽出する
PDF形式だけでなく、コードベースを変更せずに、ワープロドキュメント、スプレッドシート、プレゼンテーションからすべての画像を取り出すことができます。ソースドキュメントのパスをファイル拡張子で変更するだけで、ドキュメントが解析され、すべての画像が抽出されてディスクに保存されます。
using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document
C#の特定のドキュメントページからの画像抽出
ドキュメントの特定のページから画像を抽出する場合は、以下の手順とC#コードを使用して簡単に行うことができます。
- GetDocumentInfoメソッドを使用してドキュメントに関する情報を取得します。
- 文書情報から、合計PageCountなどの情報を取り出してください。
- GetImages(pageIndex) メソッドを使用して、ターゲットページのインデックスを渡します。
- 取得した画像を保存するには、画像コレクションをトラバースし、保存メソッドを使用して個々の画像を保存します。
// GroupDocs.Parser for .NETを使用して、C#でWord、Excel、PowerPoint、PDFの特定のページから画像を抽出します。
using (Parser parser = new Parser("path/document.pdf"))
{
// ドキュメント情報を取得する
IDocumentInfo documentInfo = parser.GetDocumentInfo();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// ページを繰り返します
for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
{
// ページ番号を印刷する
Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
// 画像を繰り返し処理します。例ではnullチェックを無視します
foreach (PageImageArea image in parser.GetImages(pageIndex))
{
// 長方形と画像タイプを印刷する
Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
}
C#での画像抽出でサポートされている形式
以下は、画像抽出用の_GroupDocs.Parser for.NET_APIでサポートされているドキュメント形式です。
ドキュメントタイプ | ファイル形式 |
---|---|
ワードプロセッシングドキュメント | DOC、DOCX、DOCM、DOT、DOTX、DOTM、ODT、OTT、RTF |
スプレッドシート | XLS、XLSX、XLSM、XLSB、XLT、XLTX、XLTM、ODS、OTS、XLA、XLAM、NUMBERS |
プレゼンテーション | PPT、PPTX、PPTM、PPS、PPSX、PPSM、POT、POTX、POTM、ODP、OTP |
ポータブルドキュメント | |
メール | EML、EMLX、MSG |
アーカイブ | ZIP |
GroupDocs.Parserの詳細
もう少し話しましょう@無料サポートフォーラム