前回の投稿では、Javaでドキュメントから画像を抽出する方法について説明しました。今日は、C#を使用して同じ目的を達成することを目指しています。最後の投稿にアクセスしていなくても心配ありません。この記事では、ドキュメント解析.NET APIを使用して、C#アプリケーションでPDF、Excel、PowerPoint、およびWordドキュメントからプログラムで画像を抽出する方法を学習します。

.NETのドキュメントから画像を抽出する

ここでは、次のトピックについて説明します。

画像、テキスト、メタデータの抽出.NET API

.NETでドキュメントを解析してデータを抽出する

GroupDocs.Parser for .NETは、ドキュメントの解析とデータ抽出の.NETAPIです。 ドキュメントの解析画像、テキストの抽出ワードプロセッシングドキュメントスプレッドシートプレゼンテーション、アーカイブからのメタデータをサポートします。 メールドキュメント。記事の最後に、画像抽出用のAPIでサポートされているドキュメント形式が言及されています。

この記事ではこのAPIを使用するため、そのバイナリをダウンロードするか、NuGetからAPIをインストールして環境を準備することをお勧めします。

C#でPDFドキュメントから画像を抽出する

画像を抽出するためのPDFドキュメント

これらの簡単な手順に従うことで、PDFドキュメントからすべての画像を簡単に取得できます。

  1. Parserクラスオブジェクトをソースドキュメントでインスタンス化します。
  2. ** Parser**クラスのGetImagesメソッドを呼び出して、PageImageAreaオブジェクト内のすべての画像のコレクションを取得します。
  3. ** PageImageArea **を繰り返し処理して、すべての画像を取得します。
  4. 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++;
    }
}
GroupDocs.Parserを使用してドキュメントから抽出された画像

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
ポータブルドキュメント PDF
メール EML、EMLX、MSG
アーカイブ ZIP

GroupDocs.Parserの詳細

もう少し話しましょう@無料サポートフォーラム

関連記事