Extraia Texto de Documentos MS Word em C#

Os documentos do Microsoft Word são amplamente utilizados para criar e compartilhar conteúdos textuais. Se você estiver trabalhando com documentos Word em suas aplicações C#, pode ser necessário extrair texto de documentos Word usando C# ASP.NET e extrair texto preservando a formatação. Por exemplo, você pode querer analisar o texto, extrair seções específicas de um documento ou combiná-las em um único documento. Neste blog, exploraremos como extrair texto de documentos Word em C# usando a melhor biblioteca C# para extração de textos de documentos Word.

Biblioteca C# para Extrair Texto de Documentos Word

Aspose.Words for .NET é uma biblioteca rica em recursos e fácil de usar para trabalhar com documentos Word. Ela oferece uma ampla gama de capacidades, incluindo extração de texto de documentos Word em .NET, criação, manipulação e conversão de documentos. Com Aspose.Words for .NET, você pode lidar com vários aspectos de documentos Word, tornando-se uma ferramenta valiosa para desenvolvedores que buscam extração de texto em Word C# eficiente.

Você pode baixar o DLL ou instalar a biblioteca diretamente do NuGet usando o console do gerenciador de pacotes.

PM> Install-Package Aspose.Words

Extraindo Texto de Documentos Word

Um documento do MS Word consiste em vários elementos que incluem parágrafos, tabelas, imagens, etc. Portanto, os requisitos de extração de texto podem variar de um cenário para outro. Por exemplo, você pode precisar extrair texto de documentos Word digitalizados C# ou extrair texto de arquivos Word C# .NET. Cada tipo de elemento em um documento Word é representado como um nó. Assim, para processar um documento, você terá que interagir com os nós. Vamos começar e ver como extrair texto de documentos Word em diferentes cenários, garantindo que lidaremos com a formatação de palavras ao extrair texto C# de maneira eficaz.

Extrair Texto de um DOC Word em C#

Nesta seção, vamos implementar um extrator de texto C# para documentos Word, e o fluxo de trabalho da extração de texto será o seguinte:

  • Primeiro, definiremos os nós que queremos incluir no processo de extração de texto.
  • Em seguida, extrairemos o conteúdo entre os nós especificados (incluindo ou excluindo os nós inicial e final).
  • Finalmente, usaremos um clone dos nós extraídos, por exemplo, para criar um novo documento Word contendo o conteúdo extraído.

Vamos agora escrever um método chamado ExtractContent para o qual passaremos os nós e alguns outros parâmetros para realizar a extração de texto. Este método analisará o documento e clonar os nós. Os seguintes são os parâmetros que passaremos a este método:

  1. StartNode e EndNode como pontos de partida e fim para a extração do conteúdo, respectivamente. Estes podem ser nós de nível bloco (Paragraph, Table) ou de nível inline (por exemplo, Run, FieldStart, BookmarkStart, etc.).
    1. Para passar um campo, você deve passar o objeto FieldStart correspondente.
    2. Para passar marcadores, os nós BookmarkStart e BookmarkEnd devem ser passados.
    3. Para comentários, os nós CommentRangeStart e CommentRangeEnd devem ser usados.
  2. IsInclusive define se os marcadores são incluídos na extração ou não. Se essa opção estiver definida como falsa e o mesmo nó ou nós consecutivos forem passados, então uma lista vazia será retornada.

A seguir está a implementação completa do método ExtractContent que extrai o conteúdo entre os nós que são passados, extraindo com precisão texto de um documento Word protegido C#.

Alguns métodos auxiliares também são necessários pelo método ExtractContent para realizar a operação de extração de texto, que estão descritos abaixo.

Agora estamos prontos para utilizar esses métodos e extrair texto de um documento Word usando C#.

Extrair Texto entre Parágrafos de um Documento Word

Vamos ver como extrair conteúdo entre dois parágrafos em um documento DOCX. As seguintes etapas realizam essa operação em C#.

  • Primeiro, carregue o documento Word usando a classe Document.
  • Obtenha a referência aos parágrafos inicial e final em dois objetos usando o método Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Chame o método ExtractContent(startPara, endPara, true) para extrair os nós em um objeto.
  • Chame o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento contendo o conteúdo extraído.
  • Por fim, salve o documento retornado usando o método Document.Save(string).

O seguinte exemplo de código mostra como extrair eficientemente texto de grandes arquivos Word, extraindo texto entre o 7º e o 11º parágrafos em um documento Word em C#.

Extrair Texto entre Diferentes Tipos de Nós

Você também pode extrair conteúdo entre diferentes tipos de nós. Para demonstração, vamos extrair conteúdo entre um parágrafo e uma tabela e salvá-lo em um novo documento Word. As seguintes etapas realizam essa operação.

  • Carregue o documento Word usando a classe Document.
  • Obtenha a referência aos nós inicial e final em dois objetos usando o método Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Chame o método ExtractContent(startPara, endPara, true) para extrair os nós em um objeto.
  • Chame o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento contendo o conteúdo extraído.
  • Salve o documento retornado usando o método Document.Save(string).

O seguinte exemplo de código mostra como extrair texto entre um parágrafo e uma tabela em C#.

Buscar Texto entre Parágrafos com base em Estilos

Agora vamos verificar como extrair conteúdo entre parágrafos com base em estilos. Para demonstração, vamos extrair conteúdo entre o primeiro “Título 1” e o primeiro “Título 3” no documento Word. As seguintes etapas demonstram como alcançar isso em C#.

  • Primeiro, carregue o documento Word usando a classe Document.
  • Em seguida, extraia parágrafos em um objeto usando o método auxiliar ParagraphsByStyleName(Document, “Título 1”).
  • Extraia parágrafos em outro objeto usando o método auxiliar ParagraphsByStyleName(Document, “Título 3”).
  • Chame o método ExtractContent(startPara, endPara, true) e passe os primeiros elementos em ambos os arrays de parágrafos como os primeiros e segundos parâmetros.
  • Chame o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento contendo o conteúdo extraído.
  • Por fim, salve o documento retornado usando o método Document.Save(string).

O seguinte exemplo de código mostra como extrair conteúdo entre parágrafos com base em estilos.

Leia Mais sobre Extração de Texto

Você pode explorar outros cenários da API .NET para extração de textos de documentos Word usando este artigo de documentação.

Obtenha a Biblioteca de Extratores de Texto Word Grátis

Você pode obter uma licença temporária gratuita para extrair textos sem limitações de avaliação.

Conclusão

Aspose.Words for .NET é uma biblioteca versátil que simplifica o processo de C# extrair texto de Word preservando formatação. Com suas extensas funcionalidades e API fácil de usar, você pode trabalhar de forma eficiente com documentos Word e automatizar diferentes cenários de manuseio de caracteres especiais durante a extração de texto em C# de documentos Word. Quer você esteja construindo aplicações que precisam processar documentos Word ou simplesmente extraindo texto, Aspose.Words for .NET é uma ferramenta valiosa para desenvolvedores.

Você pode explorar outros recursos do Aspose.Words for .NET usando a documentação. Caso tenha alguma dúvida, sinta-se à vontade para nos informar através do nosso fórum.

Veja Também

Dica: Você pode querer conferir o conversor Aspose PowerPoint para Word, pois ele demonstra o popular processo de conversão de apresentações para documentos Word.