Im vorherigen Post haben wir besprochen, wie man Bilder aus Dokumenten in Java extrahiert. Heute werden wir versuchen, dasselbe Ziel mit C# zu erreichen. Keine Sorge, wenn Sie den letzten Beitrag nicht besucht haben. In diesem Artikel lernen wir, Bilder aus PDF-, Excel-, PowerPoint- und Word-Dokumenten programmgesteuert in einer C#-Anwendung mithilfe der .NET-API zum Analysieren von Dokumenten zu extrahieren.

Extrahieren Sie Bilder aus Dokumenten in .NET

Folgende Themen werden hier behandelt:

Bild-, Text- und Metadatenextraktion .NET-API

Analysieren Sie Dokumente und extrahieren Sie Daten in .NET

GroupDocs.Parser for .NET ist eine .NET-API zum Analysieren von Dokumenten und zum Extrahieren von Daten. Es unterstützt Dokumentparsing und Extrahieren von Bildern, Text und Metadaten aus Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen, Archiven und E-Mail Dokumente. Am Ende des Artikels werden Dokumentformate erwähnt, die von der API zur Bildextraktion unterstützt werden.

In diesem Artikel verwenden wir diese API, daher würde ich empfehlen, ihre Binärdateien herunterzuladen oder die API von NuGet zu installieren, um die Umgebung vorzubereiten.

Bilder aus PDF-Dokumenten in C# extrahieren

PDF-Dokument zum Extrahieren von Bildern

Sie können ganz einfach alle Bilder aus jedem PDF-Dokument abrufen, indem Sie diesen einfachen Schritten folgen.

  1. Instanziieren Sie das Klassenobjekt Parser mit dem Quelldokument.
  2. Rufen Sie die Methode GetImages der Parser-Klasse auf, um die Sammlung aller Bilder in PageImageArea-Objekten abzurufen.
  3. Iterieren Sie über PageImageArea, um jedes Bild zu erhalten.
  4. Speichern Sie Bilder mit der Methode Save von PageImageArea auf der Festplatte.

Extrahierte Bilder können in den Formaten BMP, GIF, JPEG, PNG und WebP gespeichert werden. Der vollständige Code wird unten gezeigt, um die gesamten Schritte zu demonstrieren.

// Extrahieren Sie Bilder aus Word, Excel, PPT, PDF in C# mit GroupDocs.Parser für .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // Über abgerufene Bilder iterieren
    foreach (PageImageArea image in images)
    {
        // Bild speichern und Seitenindex, Rechteck und Bildtyp drucken:
        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++;
    }
}
Extrahierte Bilder aus dem Dokument mit GroupDocs.Parser

Extrahieren Sie Bilder aus Word-, Excel- und PowerPoint-Dateien in C#

Wir sind nicht nur auf das PDF-Format beschränkt, sondern können alle Bilder aus Textverarbeitungsdokumenten, Tabellenkalkulationen und Präsentationen mit der unveränderten Codebasis entfernen. Ändern Sie einfach den Quelldokumentpfad mit der Dateierweiterung, Ihr Dokument wird analysiert, um alle Bilder zu extrahieren und auf der Festplatte zu speichern.

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

Bildextraktion aus einer bestimmten Dokumentseite in C#

Wenn Sie Bilder aus einer bestimmten Seite des Dokuments extrahieren möchten, können Sie dies ganz einfach mit den unten aufgeführten Schritten und dem C#-Code tun.

  • Rufen Sie die Informationen über das Dokument mit der Methode GetDocumentInfo ab.
  • Nehmen Sie aus den Dokumentinformationen die Gesamtzahl PageCount und andere Informationen heraus.
  • Verwenden Sie die Methode GetImages(pageIndex) und übergeben Sie Ihren Zielseitenindex an sie.
  • Um die abgerufenen Bilder zu speichern, durchlaufen Sie die Bildersammlung und speichern Sie das einzelne Bild mit der Methode Save.
// Extrahieren Sie Bilder aus bestimmten Seiten von Word, Excel, PowerPoint, PDF in C# mit GroupDocs.Parser für .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Holen Sie sich die Dokumentinformationen
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Über Seiten iterieren
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // Drucken Sie eine Seitenzahl 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Iterieren Sie über Bilder. Ignorieren der Nullprüfung im Beispiel
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // Drucken Sie ein Rechteck und einen Bildtyp
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Unterstützte Formate für die Bildextraktion in C#

Im Folgenden sind die Dokumentformate aufgeführt, die von der GroupDocs.Parser for .NET-API für die Bildextraktion unterstützt werden.

Mehr über GroupDocs.Parser

Lass uns noch ein bisschen reden @ Free Support Forum

Zum Thema passende Artikel