Extract Text from MS Word Documents in C#

Microsoft Word-dokumenter er et stykke til at skabe og dele tekstindhold. Hvis du udvikler C#-applikationer, der interagerer med disse dokumenter, kan du finde dig selv nødt til at udveksle tekst fra dem. Dette kan være til formål som tekstanalyse eller udveksle specifikke sektioner af et dokument til at indsamle i en ny. I denne blog post, vil vi dykke ind i metoderne til at udveksle tekst fra Word-dokumenter i C#.

Tabellen af indhold

C# Library for Text Extraction

Aspose.Words til .NET er en kraftfuld og brugervenlig bibliotek designet til at arbejde med Word-dokumenter. Det giver et omfattende sæt funktioner, herunder tekstudvinding, dokumentoprettelse, manipulation og konvertering. Med Aspose.Words for .NET, kan udviklere effektivt administrere forskellige aspekter af Word dokumenter, hvilket gør det til et værdifuldt værktøj til dine udviklingsbehov.

For at begynde, Download biblioteket eller installere det direkte fra NuGet Brug følgende kommando i pakkeadministratorkonsolen:

PM> Install-Package Aspose.Words

Forstå tekstekstraktion i Word-dokumenter

En MS Word-dokument består af forskellige elementer som afsnit, tabeller og billeder. Følgelig kan kravene til tekstuddragelse variere baseret på det specifikke anvendelsesfelt. Du kan nødt til at udveksle tekst mellem afsnit, bogmærker, kommentarer og meget mere.

Hvert element i et Word-dokument er repræsenteret som en knude. Derfor, for effektivt at behandle et dokument, skal du arbejde med disse knude. Lad os udforske, hvordan man ekstrakter tekst fra Word-dokumenter i forskellige scenarier.

Step-by-Step Guide til at udveksle tekst fra et Word-dokument

I dette afsnit vil vi implementere en C#-tekstekstraktor for Word-dokumenter. Arbejdsløbet for tekstekstraktion vil omfatte følgende trin:

  • Bestem de knuder, der skal indgå i ekstraktionsprocessen.
  • Udveksle indholdet mellem de angivne noder (herunder eller udelukkende start- og slutnoder).
  • Brug de klonede udvundne knuder til at oprette et nyt Word-dokument, der indeholder det udvundne indhold.

Lad os oprette en metode kaldet ExtractContent, der vil acceptere knuder og andre parametre til at udføre tekstudvinding. Denne metode vil parse dokumentet og klone knuderne baseret på følgende parametrer:

  • StartNode og EndNote: Disse definerer start- og slutpunkterne for indholdsudvinding. De kan være blok-niveauer (f.eks. Paragraf, Tabell) eller inline-level knudler (for eksempel Run , FieldStarts eller BookmarkStars).- For felter skal du bruge det tilsvarende FieldStart-objekt.

  • For bogmærker kan du bruge BookmarkStart og BookmarkEnd knuder.

  • Hvis du vil kommentere, skal du bruge CommentRangeStart-knapperne og Komment RangeEnd.

  • IsInclusive: Denne parameter bestemmer, om markeringerne er inkluderet i ekstraktionen. Hvis de er indstillet til falske og de samme eller efterfølgende noder leveres, returneres en tom liste.

Her er den komplette implementering af ExtractContent-metoden til at udveksle indhold mellem de angivne knuder:

Derudover er nogle hjælpemetheder krævet af ExtractContent-metoden for at lette tekstekstraktionsoperationen:

Nu vi har vores metoder klar, kan vi fortsætte med at udveksle tekst fra et Word-dokument.

Ekstrakt tekst mellem afsnit i et orddokument {#ekstrakt tekst mellem afsnit}

For at udveksle indhold mellem to afsnit i et Word DOCX-dokument, skal du følge disse trin:

  • Lad Word-dokumentet op ved hjælp af klassen Dokument.
  • Få referencer til start- og slutparagraferne ved hjælp af Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean)-metoden.
  • Kaller ExtractContent(startPara, end Para, True)-metoden for at udveksle noderne til et objekt.
  • Brug GenerateDocument(Dokument, udvundetNodes)-hjælpermetode til at oprette et dokument med det ekstraherede indhold.
  • Save det nye dokument ved hjælp af Document.Save(string)-metoden.

Her er en kodeprøve, der viser, hvordan man ekstrakter tekst mellem paragraferne 7 og 11 i et Word-dokument:

Udvinding af tekst mellem forskellige typer af knuder

Du kan også udveksle indhold mellem forskellige typer af knuder. For eksempel, lad os udveksle indhold mellem et afsnit og en tabel og gem det i et nyt Word-dokument:

  • Lad Word-dokumentet op ved hjælp af klassen Dokument.
  • Få henvisninger til start- og slutknapperne ved hjælp af Document.FirstSection.Body.GetChild(NodeType, int, boolean)-metoden.
  • Kaller ExtractContent(startPara, end Para, True) for at udveksle noderne til et objekt.
  • Brug GenerateDocument(Dokument, udvundetNodes)-hjælpermetode til at oprette et dokument med det ekstraherede indhold.
  • Save det nye dokument ved hjælp af Document.Save(string).

Her er kodestemplet til udvinding af tekst mellem et afsnit og en tabel i C#:

Ekstrakt tekst baseret på stilarter

For at udveksle indhold mellem afsnit baseret på stilarter, skal du følge disse trin. For denne demonstration vil vi udveksle indhold mellem det første “Titler 1” og det første “Titler 3” i Word-dokumentet:

  • Lad Word-dokumentet op ved hjælp af klassen Dokument.
  • Ekstrakter afsnit til et objekt ved hjælp af ParagraphsByStyleName(Dokument, “Hed 1”) hjælpemiddel.
  • Udveksle afsnit til et andet objekt ved hjælp af ParagraphsByStyleName(Dokument, “Heading 3].
  • Kall ExtractContent(startPara, end Para, True) med de første elementer fra begge paragrafer.
  • Brug GenerateDocument(Dokument, udvundetNodes)-hjælpermetode til at oprette et dokument med det ekstraherede indhold.
  • Save det nye dokument ved hjælp af Document.Save(string).

Her er et kodestempel til at udveksle indhold mellem afsnit baseret på stilarter:

Læs mere om tekstekstraktion

Undersøg yderligere scenarier for udvinding af tekst fra Word-dokumenter gennem Denne dokumentation artikel.

Få en gratis Word Text Extractor Library

Du kan få en Fri midlertidig licens at udtrykke tekst uden evalueringsbegrænsninger.

Konklusion

Aspose.Words for .NET er en mangfoldig bibliotek, der rationaliserer processen med at udveksle tekst fra Word-dokumenter i C#. Med dens omfattende funktioner og brugervenlige API kan du effektivt arbejde med Word-dokumenter og automatisere forskellige tekstudvekslingsscenarier. Uanset om du udvikler applikationer, der kræver Word-dokumentbearbejdning eller simpelthen udveksle tekst, er Aspose.Words for .NET et vigtigt værktøj for udviklere.

For at udforske flere funktioner i Aspose.Words for .NET, skal du tjekke Dokumentation. Hvis du har spørgsmål, føle dig fri til at komme ud via vores Forum.

Se også

Tip: Du vil måske kontrollere Aspose PowerPoint til Word Converter, som viser den populære proces med at konvertere præsentationer til Word-dokumenter.

More in this category