Extrair Texto de Documentos do MS Word em C#

Documentos do Microsoft Word são uma base para criar e compartilhar conteúdo textual. Se você está desenvolvendo aplicações C# que interagem com documentos do Word, pode precisar extrair texto de documentos do Word usando C# em ASP.NET, garantindo que a formatação seja preservada. Seja analisando texto, extraindo seções específicas ou combinando conteúdo em um único documento, este guia mostrará como extrair texto de documentos do Word de forma eficiente usando a melhor biblioteca C# para extração de texto de documentos do Word.

Índice

Biblioteca C# para Extrair Texto de Documentos do Word

Aspose.Words para .NET é uma biblioteca rica em recursos e fácil de usar, projetada para trabalhar com documentos do Word. Ela fornece um conjunto abrangente de funcionalidades, incluindo extração de texto de documentos do Word em .NET, criação, manipulação e conversão de documentos. Aspose.Words para .NET é uma ferramenta inestimável para desenvolvedores que buscam extração eficiente de texto do Word em C#.

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

PM> Install-Package Aspose.Words

Entendendo 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 de extração de texto podem diferir com base no cenário. Por exemplo, você pode precisar extrair texto de um documento do Word digitalizado em C# ou extrair texto de um arquivo do Word usando C# .NET. Cada elemento em um documento do Word é representado como um nó, com o qual você interagirá durante o processo de extração. Vamos explorar como extrair texto de documentos do Word enquanto lida efetivamente com a formatação de texto durante a extração em C#.

Extraindo 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 inclui:

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

Vamos criar um método chamado ExtractContent, que aceitará os nós e outros parâmetros para a extração de texto. Este método analisará o documento e clonará os nós. Aqui estão os parâmetros que passaremos para o método:

  1. StartNode e EndNode servem como os pontos de início e fim para a extração de conteúdo. Estes podem ser nós de nível de bloco (por exemplo, Parágrafo, Tabela) ou nós de nível inline (por exemplo, Run, FieldStart, BookmarkStart, etc.).
    • 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.
  2. IsInclusive especifica se os marcadores estão incluídos na extração. Se definido como falso e os mesmos ou nós consecutivos forem passados, uma lista vazia será retornada.

A implementação completa do método ExtractContent, que extrai texto de documentos do Word protegidos em C#, é a seguinte:

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

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

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. Referencie os 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 contendo o conteúdo extraído.
  5. Por fim, salve o documento retornado usando o método Document.Save(string).

Aqui está um exemplo de código demonstrando como extrair texto de grandes arquivos do Word, extraindo conteúdo entre o 7º e o 11º parágrafos:

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. Siga estas etapas:

  1. Carregue o documento do Word usando a classe Document.
  2. Referencie os nós de início e fim usando o método Document.FirstSection.Body.GetChild(NodeType, 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 contendo o conteúdo extraído.
  5. Salve o documento retornado usando o método Document.Save(string).

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

Extraindo Texto entre Parágrafos com base em Estilos

Agora vamos explorar como extrair conteúdo entre parágrafos com base em estilos. Neste exemplo, extrairemos conteúdo entre o primeiro “Título 1” e o primeiro “Título 3” no documento do Word. Siga estas etapas:

  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 o método auxiliar ParagraphsByStyleName(Document, “Heading 3”).
  4. Chame o método ExtractContent(startPara, endPara, true), passando os primeiros elementos em ambos os arrays de parágrafos como parâmetros.
  5. Use o método auxiliar GenerateDocument(Document, extractedNodes) para criar um documento contendo o conteúdo extraído.
  6. Por fim, salve o documento retornado usando o método Document.Save(string).

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

Leia Mais sobre Extração de Texto

Explore outros cenários da API .NET para extração de texto de documentos do Word neste artigo de documentação.

Obtenha a Biblioteca de Extrator de Texto do Word Grátis

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

Conclusão

Aspose.Words para .NET é uma biblioteca versátil que simplifica o processo de extração de texto C# do Word enquanto preserva a formatação. Com seus extensos recursos e API amigável, você pode trabalhar de forma eficiente com documentos do Word e automatizar vários cenários envolvendo manipulação de caracteres especiais durante a extração de texto em C#. Seja desenvolvendo aplicações que precisam processar documentos do Word ou simplesmente extraindo texto, Aspose.Words para .NET é uma ferramenta valiosa para desenvolvedores.

Explore recursos adicionais do Aspose.Words para .NET através da documentação. Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato pelo nosso fórum.

Veja Também

Dica: Você também pode querer conferir o conversor Aspose PowerPoint para Word, que demonstra o popular processo de conversão de apresentação para documento do Word.