Extract Text from MS Word Documents in C#

Documentos do Microsoft Word são um pedaço para criar e compartilhar conteúdo de texto. Se você está desenvolvendo aplicações C# que interagem com esses documentos, você pode encontrar-se necessária para extrair texto deles. Isso pode ser para fins como análise do texto ou extraindo seções específicas de um documento para compilar em um novo.

Tabela de Conteúdo

C# Biblioteca para Extracção de Texto

Versões para .NET É uma biblioteca poderosa e fácil de usar projetada para trabalhar com documentos do Word. Ele fornece um conjunto abrangente de recursos, incluindo extração de texto, criação de documentos, manipulação e conversão. com Aspose.Words para .NET, os desenvolvedores podem gerenciar efetivamente vários aspectos dos documentos da Word, tornando-o uma ferramenta inestimável para suas necessidades de desenvolvimento.

Para começar, Baixe a Biblioteca ou instalá-lo diretamente do NuGet Use o seguinte comando na consola de gerenciamento de pacotes:

PM> Install-Package Aspose.Words

Compreender a extração de texto em documentos do Word

Um documento MS Word contém vários elementos como parágrafos, tabelas e imagens. Consequentemente, os requisitos para a extração de texto podem diferir com base no caso de uso específico. Você pode precisar extrair texto entre parágrafos, marcadores, comentários, e muito mais.

Cada elemento em um documento do Word é representado como um nodo. Portanto, para processar efetivamente um documento, você precisará trabalhar com esses nódulos. Vamos explorar como extrair texto de documentos do Word em cenários diferentes.

Guia passo a passo para extrair texto de um documento Word

Nesta seção, implementamos um extractor de texto C# para documentos do Word. O fluxo de trabalho para a extracção de texto envolverá os seguintes passos:

  • Defina os nodos para incluir no processo de extração.
  • Extrair o conteúdo entre os nódulos especificados (incluindo ou excluindo os nódulos de início e fim).
  • Use os nodos extraídos clonados para criar um novo documento do Word que contém o conteúdo extraído.

Vamos criar um método chamado ExtractContent que aceitará nodos e outros parâmetros para realizar a extração de texto.

  • StartNode e EndNode: Estes definem os pontos de início e de fim para a extração de conteúdo. eles podem ser níveis de bloco (por exemplo, Parágrafo, Tabela) ou nódulos de nível inline (por exemplo, Run, FieldStart, BookmarkStart).- Para campos, entre o objeto FieldStart correspondente.

  • Para as notas, use os nódulos BookmarkStart e BookmarkEnd.

  • Para comentários, use os nódulos CommentRangeStart e CommentRangeEnd.

  • IsInclusive: Este parâmetro determina se os marcadores estão incluídos na extração.Se configurado para falso e os mesmos ou nodos consecutivos são fornecidos, uma lista vazia será devolvida.

Aqui está a implementação completa do método ExtractContent para extrair conteúdo entre os nodos especificados:

Além disso, alguns métodos de ajuda são necessários pelo método ExtractContent para facilitar a operação de extração de texto:

Agora que temos os nossos métodos prontos, podemos continuar a extrair texto de um documento do Word.

Extracção de texto entre parágrafos de um documento de palavra {#extracção de texto entre parágrafos}

Para extrair conteúdo entre dois parágrafos em um documento do Word DOCX, siga estas etapas:

  • Carregue o documento Word usando a classe Document.
  • Obtenha referências aos parágrafos de início e fim usando o método Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Chame o método ExtractContent(startPara, endPara, True) para extrair os nodos para um objeto.
  • Use o método de ajuda GenerateDocument(Document, extraídoNodes) para criar um documento com o conteúdo extraído.
  • Salve o novo documento usando o método Document.Save(string).

Aqui está uma amostra de código que mostra como extrair texto entre os parágrafos 7 e 11 em um documento do Word:

Extração de texto entre diferentes tipos de nódulos

Você também pode extrair conteúdo entre diferentes tipos de nodos. Por exemplo, vamos extrair conteúdo entre um parágrafo e uma tabela e salvá-lo em um novo documento do Word.

  • Carregue o documento Word usando a classe Document.
  • Obtenha referências aos nódulos de início e fim usando o método Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Chame ExtractContent(startPara, endPara, True) para extrair os nodos para um objeto.
  • Use o método de ajuda GenerateDocument(Document, extraídoNodes) para criar um documento com o conteúdo extraído.
  • Salve o novo documento usando Document.Save(string).

Aqui está a amostra de código para extrair texto entre um parágrafo e uma tabela em C#:

Extracção de texto com base em estilos {#extracção de texto entre parágrafos com base em estilos}

Para extrair conteúdo entre parágrafos com base em estilos, siga estas etapas. Para esta demonstração, extrairemos conteúdo entre o primeiro “Título 1” e o primeiro “Título 3” no documento do Word:

  • Carregue o documento Word usando a classe Document.
  • Extrair parágrafos para um objeto usando o método de ajuda ParágrafosByStyleName(Document, “Título 1”).
  • Extrair parágrafos para outro objeto usando ParágrafosByStyleName(Document, “Capitão .
  • Chame ExtractContent(startPara, endPara, True) com os primeiros elementos de ambos os parágrafos.
  • Use o método de ajuda GenerateDocument(Document, extraídoNodes) para criar um documento com o conteúdo extraído.
  • Salve o novo documento usando Document.Save(string).

Aqui está uma amostra de código para extrair conteúdo entre parágrafos com base em estilos:

Leia mais sobre Extracção de texto

Explore cenários adicionais para extrair texto de documentos do Word através Este artigo de documentação.

Get a Free Word Text Extractor Library

Você pode obter uma Licença temporária grátis para extrair texto sem restrições de avaliação.

Conclusão

Aspose.Words para .NET é uma biblioteca versátil que simplifica o processo de extração de texto de documentos do Word em C#. Com suas extensas funcionalidades e API de fácil utilização, você pode trabalhar com eficiência com documentos do Word e automatizar vários cenários de extração de texto. Se você está desenvolvendo aplicações que exigem o processamento de documentos do Word ou simplesmente extrair texto, Aspose.Words para .NET é uma ferramenta essencial para os desenvolvedores.

Para explorar mais recursos do Aspose.Words para .NET, verifique o DocumentaçãoSe você tiver alguma pergunta, sinta-se livre para chegar através do nosso Fórum.

Veja também

Tip: Você pode querer verificar o Aspose PowerPoint para o Word Converter, que demonstra o processo popular de converter apresentações em documentos do Word.

More in this category