前回の投稿では、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の詳細
もう少し話しましょう@無料サポートフォーラム