A maioria dos dados é representada como texto visual em documentos, imagens e na Web, portanto, a extração de dados de texto às vezes é a coisa mais necessária. Pode ser necessário extrair texto ou imagens de documentos Word ou PDF. Como desenvolvedor C#, você pode extrair facilmente texto de documentos programaticamente. Neste artigo, você aprenderá como extrair texto dos documentos DOC ou DOCX usando C#.
Os seguintes tópicos são discutidos/abordados neste artigo:
- API C# para extração de texto
- Extrair texto do DOCX usando C #
- Obter texto formatado do DOCX usando C#
- Extrair texto formatado de páginas usando C#
API C# para extração de texto
Estarei usando GroupDocs.Parser for .NET API para extrair um texto de documentos DOCX. Ele permite extrair texto, metadados e imagens de documentos de formato de arquivo suportados, como Word, PDF, Excel e Powerpoint. Ele também suporta a extração de texto bruto, formatado e estruturado, bem como metadados dos arquivos de formatos suportados.
Você pode baixar a DLL da API ou instalá-la usando o NuGet.
Install-Package GroupDocs.Parser
Extrair texto do DOCX usando C
Você pode analisar facilmente qualquer documento e extrair texto seguindo as etapas simples mencionadas abaixo:
- Crie uma instância da classe Parser
- Especifique o caminho do arquivo
- Chame o método GetText da classe Parser para extrair texto
- Obtenha resultados no objeto da classe TextReader
- Mostrar resultados chamando o método ReadToEnd da classe TextReader
O exemplo de código a seguir mostra como extrair texto de um arquivo DOCX usando C#.
// Crie uma instância da classe Parser
Parser parser = new Parser(@"C:\Files\sample.docx");
// Extraia um texto para o leitor
using (TextReader reader = parser.GetText())
{
// Imprimir um texto do documento
// Se a extração de texto não for compatível, um leitor será nulo
Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
A classe Parser é a classe principal que fornece funcionalidade de análise e extração de texto e imagens. Eu especifiquei o caminho do arquivo de entrada no construtor desta classe.
O método GetText() da classe Parser extrai um texto do documento especificado.
Obter texto formatado do DOCX usando C#
Você pode analisar facilmente o documento do Word e extrair o texto sem perder a formatação do estilo seguindo as etapas simples mencionadas abaixo:
- Crie uma instância da classe Parser
- Especifique o caminho do arquivo
- Definir FormattedTextOptions
- Defina FormattedTextMode para HTML
- Chame o método GetFormattedText da classe Parser para extrair texto
- Obtenha resultados no objeto da classe TextReader
- Mostrar resultados chamando o método ReadToEnd da classe TextReader
O exemplo de código a seguir mostra como extrair texto formatado de um arquivo DOCX usando C#.
// Crie uma instância da classe Parser
Parser parser = new Parser(@"C:\Files\sample.docx");
// Extraia um texto formatado no leitor
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
// Imprimir um texto formatado do documento
// Se a extração de texto formatado não for compatível, um leitor será nulo
Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
A classe FormattedTextOptions fornece as opções que são usadas para extração de texto formatado, como a extração Mode. Eu defino o modo de extração para o HTML que extrai um texto de documento como HTML .
O método GetFormattedText() da classe Parser extrai um texto formatado do documento especificado.
Extrair texto formatado de páginas usando C#
Você pode analisar facilmente um documento do Word e extrair texto formatado de uma página específica do documento seguindo as etapas simples mencionadas abaixo:
- Crie uma instância da classe Parser
- Especifique o caminho do arquivo
- Verifique se o FormattedText é verdadeiro
- Chame o GetDocumentInfo para obter a contagem de páginas
- Verifique se o PageCount não é zero
- Definir FormattedTextOptions
- Defina FormattedTextMode para HTML
- Chame o método GetFormattedText para cada índice de página para extrair texto
- Obtenha resultados no objeto da classe TextReader
- Mostrar resultados chamando o método ReadToEnd da classe TextReader
O exemplo de código a seguir mostra como extrair texto formatado de páginas uma a uma usando C#.
// Crie uma instância da classe Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
// Verifique se o documento suporta extração de texto formatado
if (!parser.Features.FormattedText)
{
Console.WriteLine("Document isn't supports formatted text extraction.");
return;
}
// Obtenha as informações do documento
IDocumentInfo documentInfo = parser.GetDocumentInfo();
// Verifique se o documento tem páginas
if (documentInfo.PageCount == 0)
{
Console.WriteLine("Document hasn't pages.");
return;
}
// Iterar nas páginas
for (int p = 0; p < documentInfo.PageCount; p++)
{
// Imprimir um número de página
Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
// Extraia um texto formatado no leitor
using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
{
// Imprimir um texto formatado do documento
// Ignoramos a verificação de nulos, pois verificamos o suporte ao recurso de extração de texto formatado anteriormente
Console.WriteLine(reader.ReadToEnd());
}
}
}
A classe Parser fornece a propriedade Features representando a classe Features. Ele pode ser usado para verificar se um recurso é compatível com o documento. Você pode ler mais sobre os recursos compatíveis na seção “Obter recursos compatíveis”.
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como extrair texto de documentos do Word usando C#. Você pode aprender mais sobre GroupDocs.Parser para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.