Em um dos artigos, já discutimos como redigir palavras em documentos como um desenvolvedor .NET. A estratégia é usada de várias maneiras para apagar conteúdo confidencial, ocultar ou remover informações privadas, como endereços de e-mail ou números de identificação. Este artigo discute como executar a pesquisa de palavras em documentos do Word DOC/DOCX em Java. Discutiremos separadamente como localizar e substituir o texto, palavras ou frases com diferentes técnicas usando a API Java para redação.

Os seguintes tópicos serão abordados a seguir:

API Java para pesquisa de palavras e substituição de texto

O GroupDocs fornece uma API de redação Java que permite localizar e substituir o conteúdo de arquivos suportados pelo MS Word e outros documentos de vários outros formatos de arquivo. Além da redação de texto e rasterização, a API suporta metadados, anotações, planilhas e também os recursos de redação de imagens. Os formatos de arquivo suportados dos documentos do Word, planilhas, apresentações, imagens e documentos PDF estão disponíveis na documentação.

Baixar ou Configurar

Você pode baixar o arquivo JAR na seção de downloads ou apenas obter as configurações de repositório e dependência mais recentes para o pom.xml de seus aplicativos Java baseados em maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

O MS Word ou qualquer outro software de terceiros não é necessário para o processo de redação. Vamos agora começar com diferentes abordagens para lidar com pesquisa e substituição de texto. A seguir está a captura de tela de um documento do Word usado nos exemplos abaixo. Você também pode usar os mesmos métodos para outros formatos de documento com muito pouca ou nenhuma alteração no código-fonte.

Documento para redigir o texto

Localizar e substituir palavras ou frases usando Java

As etapas a seguir explicam como localizar e substituir as ocorrências de uma palavra/frase em um documento do Word dentro do aplicativo Java.

  • Carregue o arquivo DOC/DOCX usando a classe Redactor.
  • Encontre a frase ou palavra exata usando as classes ExactPhraseRedaction e ReplacementOptions.
  • Use o método apply do Redactor para aplicar a redação.
  • Para salvar o arquivo em um local diferente após fazer as alterações, use o fluxo de saída.
  • Salve as alterações de redação usando o método save.

O código a seguir localiza e substitui a palavra “John Doe” no documento do Word acima usando Java. Substitui todas as ocorrências de “John Doe” pela palavra “[censurado]”.

// Encontre a frase exata e substitua-a por algum outro texto usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Se você deseja salvar o arquivo editado em um local diferente com um nome diferente.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

A saída do código é a seguinte.

Redigir usando a frase exata

Pesquisa de palavras com distinção entre maiúsculas e minúsculas e substituição de texto em Java

Você parece cauteloso sobre o caso exato da palavra e deseja apenas substituir a palavra que corresponde apenas à sua pesquisa que diferencia maiúsculas de minúsculas. O código a seguir substitui a existência da correspondência exata de maiúsculas e minúsculas da palavra “John Doe” em Java.

// Encontre a frase exata (com distinção entre maiúsculas e minúsculas) e substitua-a por algum outro texto usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

A saída do código é a seguinte.

Redação que diferencia maiúsculas de minúsculas

Substituir texto usando expressões regulares (RegEx) em Java

Se você não deseja alterar a palavra exata, mas algum padrão existente em seu documento, pode usar as expressões regulares. As etapas a seguir permitem localizar e substituir qualquer padrão de texto usando expressões regulares (RegEx) em seus aplicativos Java.

  • Carregue o documento usando a classe Redactor.
  • Crie o RegEx usando RegexRedaction.
  • Forneça o texto usando ReplacementOptions para substituir a correspondência RegEx.
  • Use o método apply para substituir todas as correspondências de regex.
  • Use o método save para obter o documento editado.

O código a seguir mostra como realizar a pesquisa de palavras em um arquivo do Word usando RegEx e substituí-lo por algum outro texto usando Java.

// Encontre texto usando expressão regular e substitua-o por algum outro texto usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

Segue a saída do código acima:

Redação RegEx

Substitua o texto pela caixa colorida em Java

Se você não deseja substituir seu conteúdo e apenas ocultá-lo, a API permite cobrir a correspondência de texto desenhando uma caixa sobre ela. O código Java a seguir oculta o texto com a caixa retangular preta.

// Encontre texto e oculte-o desenhando um retângulo sobre ele usando Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

A saída do código acima é a seguinte.

Ocultar texto usando caixa

Obtenha uma licença de API gratuita

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

Conclusão

Para resumir, você aprendeu como realizar pesquisa de palavras para localizar texto em documentos do Word usando pesquisa de frase de texto exata, pesquisa com distinção entre maiúsculas e minúsculas, pesquisa usando expressões regulares e, por último, mas não menos importante, ocultando o texto em vez de substituí-lo. Você pode usar essas técnicas diferentes para substituir as descobertas de maneiras diferentes nos documentos do MS Word.

Para obter mais detalhes e aprender sobre a API, visite a documentação. Em caso de dúvidas, entre em contato conosco através do fórum.

Veja também