Estrai testo da documenti MS Word in C#

I documenti Microsoft Word sono un elemento fondamentale per creare e condividere contenuti testuali. Se stai sviluppando applicazioni C# che interagiscono con documenti Word, potresti dover estrarre testo da documenti Word utilizzando C# in ASP.NET, assicurandoti che la formattazione venga preservata. Che tu stia analizzando testo, estraendo sezioni specifiche o combinando contenuti in un unico documento, questa guida ti mostrerà come estrarre efficientemente testo da documenti Word utilizzando la migliore libreria C# per l’estrazione di testo da documenti Word.

Indice

Libreria C# per estrarre testo da documenti Word

Aspose.Words per .NET è una libreria ricca di funzionalità, facile da usare, progettata per lavorare con documenti Word. Fornisce un insieme completo di funzionalità, inclusa l’estrazione di testo da documenti Word in .NET, creazione, manipolazione e conversione di documenti. Aspose.Words per .NET è uno strumento prezioso per gli sviluppatori che cercano un’estrazione di testo Word in C# efficiente.

Puoi scaricare il DLL o installare direttamente la libreria da NuGet utilizzando la console del gestore pacchetti:

PM> Install-Package Aspose.Words

Comprendere l’estrazione di testo nei documenti Word

Un documento MS Word è composto da vari elementi, come paragrafi, tabelle e immagini. Di conseguenza, i requisiti per l’estrazione di testo possono differire a seconda dello scenario. Ad esempio, potresti dover estrarre testo da un documento Word scansionato in C# o estrarre testo da un file Word utilizzando C# .NET. Ogni elemento in un documento Word è rappresentato come un nodo, con cui interagirai durante il processo di estrazione. Esploriamo come estrarre testo da documenti Word gestendo efficacemente la formattazione delle parole durante l’estrazione di testo in C#.

Estrazione di testo da un documento Word

In questa sezione, implementeremo un estrattore di testo C# per documenti Word. Il flusso di lavoro per l’estrazione di testo include:

  1. Definire i nodi da includere nel processo di estrazione del testo.
  2. Estrarre contenuti tra i nodi specificati (includendo o escludendo i nodi di inizio e fine).
  3. Clonare i nodi estratti per creare un nuovo documento Word contenente il contenuto estratto.

Creiamo un metodo chiamato ExtractContent, che accetterà i nodi e altri parametri per l’estrazione del testo. Questo metodo analizzerà il documento e clonerà i nodi. Ecco i parametri che passeremo al metodo:

  1. StartNode e EndNode fungono da punti di partenza e di arrivo per l’estrazione del contenuto. Questi possono essere nodi a livello di blocco (ad es. Paragraph, Table) o nodi a livello inline (ad es. Run, FieldStart, BookmarkStart, ecc.).
    • Per i campi, passa l’oggetto FieldStart corrispondente.
    • Per i segnalibri, utilizza i nodi BookmarkStart e BookmarkEnd.
    • Per i commenti, utilizza i nodi CommentRangeStart e CommentRangeEnd.
  2. IsInclusive specifica se i marcatori sono inclusi nell’estrazione. Se impostato su false e vengono passati gli stessi nodi o nodi consecutivi, verrà restituita una lista vuota.

L’implementazione completa del metodo ExtractContent, che estrae accuratamente testo da documenti Word protetti in C#, è la seguente:

Inoltre, alcuni metodi di supporto sono richiesti dal metodo ExtractContent per facilitare l’operazione di estrazione del testo:

Ora siamo pronti per utilizzare questi metodi e estrarre testo da documenti Word utilizzando C#.

Estrazione di testo tra paragrafi di un documento Word

Per estrarre contenuti tra due paragrafi in un documento DOCX di Word, segui questi passaggi:

  1. Carica il documento Word utilizzando la classe Document.
  2. Fai riferimento ai paragrafi di inizio e fine utilizzando il metodo Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Chiama il metodo ExtractContent(startPara, endPara, true) per estrarre i nodi in un oggetto.
  4. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento contenente il contenuto estratto.
  5. Infine, salva il documento restituito utilizzando il metodo Document.Save(string).

Ecco un esempio di codice che dimostra come estrarre testo da grandi file Word estraendo contenuti tra il 7° e l'11° paragrafo:

Estrazione di testo tra diversi tipi di nodi

Puoi anche estrarre contenuti tra diversi tipi di nodi. Ad esempio, estraiamo contenuti tra un paragrafo e una tabella e salviamoli in un nuovo documento Word. Segui questi passaggi:

  1. Carica il documento Word utilizzando la classe Document.
  2. Fai riferimento ai nodi di inizio e fine utilizzando il metodo Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  3. Chiama il metodo ExtractContent(startPara, endPara, true) per estrarre i nodi in un oggetto.
  4. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento contenente il contenuto estratto.
  5. Salva il documento restituito utilizzando il metodo Document.Save(string).

Ecco un esempio di codice che illustra come estrarre testo tra un paragrafo e una tabella in C#:

Estrazione di testo tra paragrafi in base agli stili

Ora esploriamo come estrarre contenuti tra paragrafi in base agli stili. In questo esempio, estrarremo contenuti tra il primo “Heading 1” e il primo “Heading 3” nel documento Word. Segui questi passaggi:

  1. Carica il documento Word utilizzando la classe Document.
  2. Estrai i paragrafi in un oggetto utilizzando il metodo di supporto ParagraphsByStyleName(Document, “Heading 1”).
  3. Estrai i paragrafi in un altro oggetto utilizzando il metodo di supporto ParagraphsByStyleName(Document, “Heading 3”).
  4. Chiama il metodo ExtractContent(startPara, endPara, true), passando i primi elementi di entrambi gli array di paragrafi come parametri.
  5. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento contenente il contenuto estratto.
  6. Infine, salva il documento restituito utilizzando il metodo Document.Save(string).

Ecco un esempio di codice che dimostra come estrarre contenuti tra paragrafi in base agli stili:

Leggi di più sull’estrazione di testo

Esplora altri scenari dell’API .NET per l’estrazione di testo da documenti Word in questo articolo di documentazione.

Ottieni la libreria gratuita per l’estrazione di testo da Word

Puoi ottenere una licenza temporanea gratuita per estrarre testo senza limitazioni di valutazione.

Conclusione

Aspose.Words per .NET è una libreria versatile che semplifica il processo di estrazione di testo da Word in C# preservando la formattazione. Con le sue ampie funzionalità e un’API user-friendly, puoi lavorare efficientemente con documenti Word e automatizzare vari scenari che coinvolgono la gestione di caratteri speciali durante l’estrazione di testo da Word in C#. Che tu stia sviluppando applicazioni che necessitano di elaborare documenti Word o semplicemente estraendo testo, Aspose.Words per .NET è uno strumento prezioso per gli sviluppatori.

Esplora ulteriori funzionalità di Aspose.Words per .NET attraverso la documentazione. Se hai domande, non esitare a contattarci tramite il nostro forum.

Vedi anche

Suggerimento: Potresti anche voler dare un’occhiata al convertitore Aspose PowerPoint a Word, che dimostra il popolare processo di conversione da presentazione a documento Word.