Pesquisar um Word em PDF usando C#

Talvez seja necessário pesquisar uma informação específica, uma frase de texto ou uma palavra de seus documentos. Como desenvolvedor C#, você pode pesquisar facilmente qualquer texto de documentos PDF programaticamente em seus aplicativos .NET. Neste artigo, você aprenderá como pesquisar texto em documentos PDF usando C#.

Os seguintes tópicos são discutidos/abordados neste artigo:

API C# para pesquisar texto

Para pesquisar texto em documentos PDF, usarei a API GroupDocs.Search for .NET. Ele permite que você execute operações de pesquisa de texto em todos os formatos de documentos populares, como PDF, Word, Excel, PowerPoint e muito mais. Ele também permite que você busque as informações necessárias de arquivos, documentos, e-mails e arquivos. Você pode criar e mesclar vários índices para pesquisá-los de forma rápida e inteligente usando simples, Booleana, Expressão Regular (Regex), Fuzzy e outros tipos de consultas.

Você pode baixar a DLL da API ou instalá-la usando NuGet.

Install-Package GroupDocs.Search

Pesquisar texto em documentos PDF usando C#

Você pode pesquisar qualquer texto ou uma palavra específica em seus documentos PDF programaticamente seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância da classe Index
  • Especifique o caminho para a pasta de índice
  • Inscreva-se nos eventos de índice
  • Adicione arquivos PDF ao Índice chamando o método Add()
  • Definir uma consulta de pesquisa
  • Realize uma pesquisa usando o método Search() com consulta de pesquisa
  • Use o SearchResult e imprima o resumo
  • Realce os resultados pesquisados na saída usando o método Highlight()

O exemplo de código a seguir mostra como pesquisar texto em documentos PDF usando C#.

// Especifique o caminho para a pasta de índice
string indexFolder = @"C:\Files\Index\";

// Especifique o caminho para uma pasta contendo documentos PDF a serem pesquisados
string documentsFolder = @"C:\Files\Files\"; 

// criar ou carregar um índice
Index index = new Index(indexFolder);

// Assine eventos de índice
index.Events.ErrorOccurred += (sender, args) =>
{
    // Escrevendo mensagens de erro no console
    Console.WriteLine(args.Message);
};

// Adicionar arquivos de forma síncrona
// Documentos de indexação síncrona da pasta especificada
index.Add(documentsFolder); 

// Realizar pesquisa
string query = "Vestibulum"; // Specify a search query
SearchResult result = index.Search(query); // Searching in the index

// Usar resultados de pesquisa
// Imprimindo o resultado
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}

// Realçar ocorrências no texto
if (result.DocumentCount > 0)
{
    // Obtendo o primeiro documento encontrado
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // Criando o adaptador de saída para um arquivo
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // Criando o objeto marcador
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // Gerando documento formatado HTML de saída com resultados de pesquisa destacados
    index.Highlight(document, highlighter); 

    Console.WriteLine();
    Console.WriteLine("Generated HTML file can be opened with Internet browser.");
    Console.WriteLine("The file can be found by the following path:");
    Console.WriteLine(path);
}

O exemplo de código acima gerará a seguinte saída:

Documents found: 1
Total occurrences found: 4
        Document: C:\Files\Files\sample.pdf
        Occurrences: 4

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Files\Files\Highlighted.html
Pesquisar-Texto-ou-Palavra-em-PDF-usando-CSharp

Realçou o texto pesquisado em documentos PDF usando C#

O Índice e o Evento de Índice

A classe Index é a classe principal que fornece funcionalidade para indexar os documentos e pesquisá-los. Um índice pode ser criado na memória ou no disco chamando o construtor desta classe. No exemplo de código acima, criei o índice no disco para que possa ser reutilizado.

O evento ErrorOccurred mostra os erros se algum ocorrer durante a indexação dos arquivos. Portanto, você precisa se inscrever para receber informações sobre erros de indexação.

Adicionar arquivos ao índice

O método Add() da classe Index adiciona um arquivo ou todos os arquivos em uma pasta ou subpastas especificadas por um caminho absoluto ou relativo. Todos os documentos no caminho fornecido serão indexados.

Executar uma operação de pesquisa

A classe Index fornece vários métodos Search para realizar a operação de pesquisa. Você pode pesquisar fornecendo uma palavra-chave simples ou definindo uma SearchQuery.

A classe SearchResult fornece detalhes de um resultado de pesquisa que corresponde a uma consulta de pesquisa. Os seguintes métodos e propriedades dessa classe facilitam a obtenção de detalhes dos resultados da pesquisa:

Destaque os resultados da pesquisa

A classe HtmlHighlighter destaca os resultados da pesquisa em um texto inteiro do documento formatado em HTML.

O método Highlight() da classe Index gera uma saída HTML destacando as ocorrências dos termos encontrados. Você pode encontrar mais detalhes sobre “Destacando resultados da pesquisa” na documentação.

Pesquisa de texto sensível a maiúsculas e minúsculas em PDF usando C#

Você pode pesquisar qualquer frase de texto específica ou uma palavra considerando letras maiúsculas e minúsculas em seus documentos PDF programaticamente seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância da classe Index
  • Especifique o caminho para a pasta de índice
  • Adicione arquivos PDF ao Índice chamando o método Add()
  • Crie uma instância de SearchOptions
  • Defina a propriedade UseCaseSensitiveSearch como true
  • Definir uma consulta de pesquisa
  • Realize uma pesquisa usando o método Search() com consulta de pesquisa and the SearchOptions
  • Use o SearchResult e imprima o resumo

O exemplo de código a seguir mostra como realizar uma pesquisa de texto com distinção entre maiúsculas e minúsculas em um documento PDF usando C#.

// Especifique o caminho para a pasta de índice
string indexFolder = @"C:\Files\Index\";

// Especifique o caminho para uma pasta contendo documentos PDF a serem pesquisados
string documentsFolder = @"C:\Files\Files\";

// Criando índice na pasta especificada
Index index = new Index(indexFolder);

// Indexando documentos da pasta especificada
index.Add(documentsFolder); 

// Definir opções de pesquisa
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// palavra de pesquisa
string query = "Vestibulum";

// Faça a Pesquisa
SearchResult result = index.Search(query, options);

// Imprimindo o resultado
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}
Documents found: 1
Total occurrences found: 2
        Document: C:\Files\Files\sample.pdf
        Occurrences: 2

A classe SearchOptions fornece opções para realizar as operações de pesquisa. A propriedade UseCaseSensitiveSearch dessa classe permite que você faça uma pesquisa com distinção entre maiúsculas e minúsculas para uma palavra ou texto.

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 pesquisar texto em um documento PDF usando C#. Você também aprendeu como realizar uma pesquisa de texto com distinção entre maiúsculas e minúsculas em um documento PDF usando C#. Você pode aprender mais sobre GroupDocs.Search for .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também