Nel post precedente, abbiamo discusso su come estrarre immagini da documenti in Java. Oggi cercheremo di raggiungere lo stesso obiettivo usando C#. Nessun problema se non hai visitato l’ultimo post. In questo articolo impareremo a estrarre a livello di codice immagini da documenti PDF, Excel, PowerPoint e Word in un’applicazione C# utilizzando l’API .NET per l’analisi dei documenti.

Estrai immagini da documenti in .NET

I seguenti argomenti saranno trattati qui:

API .NET per l’estrazione di immagini, testo e metadati

Analizza documenti ed estrai dati in .NET

GroupDocs.Parser for .NET è l’API .NET per l’analisi e l’estrazione dei dati di documenti. Supporta l’analisi dei documenti e l’estrazione di immagini, testo e metadati da documenti di elaborazione testi, fogli di calcolo, presentazioni, archivi e e-mail documenti. Alla fine dell’articolo, sono menzionati i formati dei documenti supportati dall’API per l’estrazione delle immagini.

In questo articolo utilizzeremo questa API, quindi consiglierei di scaricare i suoi binari o installare l’API da NuGet per preparare l’ambiente.

Estrai immagini da documenti PDF in C#

Documento PDF per estrarre immagini

Puoi facilmente recuperare tutte le immagini da qualsiasi documento PDF seguendo questi semplici passaggi.

  1. Istanziare l’oggetto classe Parser con il documento di origine.
  2. Chiama il metodo GetImages della classe Parser per ottenere la raccolta di tutte le immagini negli oggetti PageImageArea.
  3. Esegui l’iterazione su PageImageArea per ottenere ogni immagine.
  4. Salva le immagini sul disco utilizzando il metodo Save di PageImageArea.

Le immagini estratte possono essere salvate nei formati BMP, GIF, JPEG, PNG e WebP. Il codice completo è mostrato di seguito per dimostrare l’intera procedura.

// Estrai immagini da Word, Excel, PPT, PDF in C# utilizzando GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // Iterare sulle immagini recuperate
    foreach (PageImageArea image in images)
    {
        // Salva immagine e stampa indice pagina, rettangolo e tipo di immagine:
        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++;
    }
}
Immagini estratte dal documento utilizzando GroupDocs.Parser

Estrai immagini da file Word, Excel, PowerPoint in C#

Non solo in formato PDF, possiamo estrarre tutte le immagini da documenti di elaborazione testi, fogli di calcolo, presentazioni, con la base di codice invariata. Basta cambiare il percorso del documento di origine con l’estensione del file, il tuo documento verrà analizzato per estrarre e salvare tutte le immagini sul disco.

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

Estrazione dell’immagine dalla pagina del documento specifica in C#

Se desideri estrarre immagini da una pagina specifica del documento, puoi farlo facilmente utilizzando i passaggi indicati di seguito e il codice C#.

  • Ottieni le informazioni sul documento usando il metodo GetDocumentInfo.
  • Dalle informazioni sul documento, estrarre il totale PageCount e altre informazioni.
  • Usa il metodo GetImages(pageIndex) e passagli l’indice della pagina di destinazione.
  • Per salvare le immagini recuperate, attraversare la raccolta di immagini e salvare la singola immagine utilizzando il metodo Salva.
// Estrai immagini da una pagina specifica di Word, Excel, PowerPoint, PDF in C# utilizzando GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Ottieni le informazioni sul documento
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Iterare sulle pagine
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // Stampa un numero di pagina 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Iterare sulle immagini. Ignorando il controllo nullo nell'esempio
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // Stampa un rettangolo e un tipo di immagine
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Formati supportati per l’estrazione di immagini in C#

Di seguito sono riportati i formati di documento supportati dall’API GroupDocs.Parser for .NET per l’estrazione di immagini.

Tipo di documento Formati di file
Documenti di elaborazione testi DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Fogli di calcolo XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Presentazioni PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Documenti portatili PDF
e-mail EML, EMLX, MSG
Archivi ZIP

Ulteriori informazioni su GroupDocs.Parser

Parliamo ancora un po’ @ Forum di supporto gratuito

articoli Correlati