Extrair Texto de Documentos MS Word em C#

Documentos do Microsoft Word são fundamentais para criar e compartilhar conteúdo textual. Se você está desenvolvendo aplicações em C# que interagem com esses documentos, pode se ver precisando extrair texto deles. Isso pode ser para fins como análise de texto ou extração de seções específicas de um documento para compilar em um novo. Neste post do blog, vamos mergulhar nos métodos para extrair texto de documentos do Word em C#.

Índice

Biblioteca C# para Extração de Texto

Aspose.Words for .NET é uma biblioteca poderosa e fácil de usar projetada para trabalhar com documentos do Word. Ela fornece um conjunto abrangente de recursos, incluindo extração de texto, criação, manipulação e conversão de documentos. Com Aspose.Words for .NET, os desenvolvedores podem gerenciar eficientemente vários aspectos dos documentos do Word, tornando-a uma ferramenta inestimável para suas necessidades de desenvolvimento.

Para começar, baixe a biblioteca ou instale-a diretamente do NuGet usando o seguinte comando no console do gerenciador de pacotes:

PM> Install-Package Aspose.Words

Compreendendo a Extração de Texto em Documentos do Word

Um documento do MS Word é composto por 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 mais.

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

Guia Passo a Passo para Extrair Texto de um Documento do Word

Nesta seção, implementaremos um extrator de texto em C# para documentos do Word. O fluxo de trabalho para a extração de texto envolverá os seguintes passos:

  1. Defina os nós a serem incluídos no processo de extração.
  2. Extraia o conteúdo entre os nós especificados (incluindo ou excluindo os nós de início e fim).
  3. Use os nós extraídos clonados para criar um novo documento do Word contendo o conteúdo extraído.

Vamos criar um método chamado ExtractContent que aceitará nós e outros parâmetros para realizar a extração de texto. Este método irá analisar o documento e clonar os nós com base nos seguintes parâmetros:

  • StartNode e EndNode: Estes definem os pontos de início e fim para a extração de conteúdo. Eles podem ser nós de nível de bloco (por exemplo, Paragraph, Table) ou nós de nível inline (por exemplo, Run, FieldStart, BookmarkStart).
    • Para campos, passe o objeto FieldStart correspondente.
    • Para marcadores, use os nós BookmarkStart e BookmarkEnd.
    • Para comentários, utilize os nós CommentRangeStart e CommentRangeEnd.
  • IsInclusive: Este parâmetro determina se os marcadores estão incluídos na extração. Se definido como falso e os mesmos ou nós consecutivos forem fornecidos, uma lista vazia será retornada.

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

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

Agora que temos nossos métodos prontos, podemos prosseguir para extrair texto de um documento do Word.

Extraindo Texto Entre Parágrafos de um Documento do Word

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

  1. Carregue o documento do Word usando a classe Document.
  2. Obtenha referências aos parágrafos de início e fim usando o método Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Chame o método ExtractContent(startPara, endPara, True) para extrair os nós em um objeto.
  4. Use o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento com o conteúdo extraído.
  5. Salve o novo documento usando o método Document.Save(string).

Aqui está um exemplo de código demonstrando como extrair texto entre o 7º e o 11º parágrafos em um documento do Word:

Extraindo Texto Entre Diferentes Tipos de Nós

Você também pode extrair conteúdo entre diferentes tipos de nós. Por exemplo, vamos extrair conteúdo entre um parágrafo e uma tabela e salvá-lo em um novo documento do Word. Os passos são os seguintes:

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

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

Extraindo Texto Baseado 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:

  1. Carregue o documento do Word usando a classe Document.
  2. Extraia parágrafos em um objeto usando o método auxiliar ParagraphsByStyleName(Document, “Heading 1”).
  3. Extraia parágrafos em outro objeto usando ParagraphsByStyleName(Document, “Heading 3”).
  4. Chame ExtractContent(startPara, endPara, True) com os primeiros elementos de ambos os arrays de parágrafos.
  5. Use o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento com o conteúdo extraído.
  6. Salve o novo documento usando Document.Save(string).

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

Leia Mais Sobre Extração de Texto

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

Obtenha uma Biblioteca de Extração de Texto do Word Gratuita

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

Conclusão

Aspose.Words for .NET é uma biblioteca versátil que simplifica o processo de extração de texto de documentos do Word em C#. Com seus extensos recursos e API fácil de usar, você pode trabalhar eficientemente com documentos do Word e automatizar vários cenários de extração de texto. Seja desenvolvendo aplicações que requerem processamento de documentos do Word ou simplesmente extraindo texto, Aspose.Words for .NET é uma ferramenta essencial para desenvolvedores.

Para explorar mais recursos do Aspose.Words for .NET, confira a documentação. Se você tiver alguma dúvida, fique à vontade para entrar em contato através do nosso fórum.

Veja Também

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