Neste artigo, demonstrarei como localizar e substituir texto em documentos do Word (DOC/DOCX) programaticamente usando Java. O guia passo a passo e os exemplos de código abrangerão vários cenários de localização e substituição de texto em documentos do Word.

Localizar e substituir texto em documentos do Word

O MS Word fornece uma maneira fácil de localizar e substituir texto nos documentos. Um dos casos de uso populares de localizar e substituir texto pode ser remover ou substituir informações confidenciais nos documentos antes de serem compartilhadas entre várias entidades. No entanto, o processo manual pode exigir que você instale o MS Word e atualize cada documento separadamente. Em tais situações, seria útil e economizaria tempo, especialmente quando você integrou recursos de localização e substituição em sua área de trabalho ou aplicativo da web. Então, vamos começar e ver como localizar e substituir texto em documentos do Word usando Java em vários cenários.

API Java para localizar e substituir texto em documentos do Word

Para implementar o recurso localizar e substituir, usaremos o Aspose.Words for Java, que é uma API de processamento de texto poderosa, rica em recursos e fácil de usar para plataforma Java. Você pode baixar seu JAR ou instalá-lo em seu aplicativo baseado em Maven usando as seguintes configurações.

Repositório:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dependência:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.5</version>
    <classifier>jdk17</classifier>
</dependency>

Localizar e substituir texto em documentos do Word (DOC/DOCX) usando Java

Vamos começar abordando um cenário simples de localizar e substituir em que encontraremos a palavra “Triste” no documento do Word de entrada. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como localizar e substituir texto em documentos do Word DOCX usando Java.

// Carregar um documento Word DOCX
Document doc = new Document("document.docx");
// Localizar e substituir texto no documento
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Salve o documento do Word
doc.save("Find-And-Replace-Text.docx");

Abaixo está o documento de entrada do Word que usamos neste artigo.

encontre e substitua texto em DOCX usando Java

A seguir está a saída após localizar e substituir a palavra “triste”.

encontrar e substituir uma palavra

Localizar e substituir palavras semelhantes no Word DOC/DOCX usando Java

Você também pode personalizar a API para localizar e substituir texto com base na semelhança. Por exemplo, as palavras “triste”, “louco” e “ruim” seguem um padrão semelhante que termina em “anúncio”. IDs de e-mail são outro exemplo desse tipo de texto. Nesses casos, você pode definir um padrão regex para localizar e substituir todas as ocorrências de texto com um padrão específico. A seguir estão os passos para conseguir isso.

A amostra de código a seguir mostra como localizar e substituir palavras semelhantes com base em um padrão específico usando Java.

// Carregar um documento Word DOCX
Document doc = new Document("document.docx");
// Localizar e substituir palavras semelhantes no documento
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Salve o documento do Word
doc.save("Find-And-Replace-Text.docx");

A seguir está a captura de tela do documento do Word após atualizar palavras semelhantes.

encontre e substitua palavras semelhantes usando Java

O Aspose.Words também permite localizar e substituir texto apenas no cabeçalho/rodapé do documento do Word. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como localizar e substituir texto no cabeçalho/rodapé do documento do Word usando Java.

// Carregar um documento Word DOCX
Document doc = new Document("document.docx");
// Acessar a coleção de rodapés do cabeçalho
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Definir opções de localização e substituição
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Salve o documento do Word
doc.save("Find-And-Replace-Text.docx");

A captura de tela a seguir mostra o texto atualizado no rodapé do documento do Word.

localizar e substituir texto no rodapé

Localizar e substituir texto por metacaracteres no Word DOCX usando Java

Pode ser o caso de você precisar localizar e substituir uma frase dividida em várias linhas ou parágrafos. Nesses casos, você terá que cuidar do parágrafo, seção ou quebras de linha. Aspose.Words para Java torna simples para você lidar com esses casos com bastante facilidade. A seguir estão os meta-caracteres que você pode usar para pausas diferentes:

  • &p: quebra de parágrafo
  • &b: quebra de seção
  • &m: quebra de página
  • &l: quebra de linha

O exemplo de código a seguir demonstra como localizar e substituir o texto por uma quebra de parágrafo em um documento do Word.

// Carregar um documento Word DOCX
Document doc = new Document("document.docx");
// Definir opções
FindReplaceOptions options = new FindReplaceOptions();
// Desativar maiúsculas e minúsculas e encontrar apenas palavras inteiras
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Substituir texto por quebra de parágrafo
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Salve o documento do Word
doc.save("Find-And-Replace-Text.docx");

A seguir está a captura de tela do documento do Word de saída.

localizar e substituir texto por metacaracteres

Conclusão

Neste artigo, você viu como localizar e substituir texto em documentos Word DOC/DOCX programaticamente usando Java. Vários cenários de localização e substituição de texto em arquivos MS Word DOCX foram abordados com a ajuda de exemplos de código. Você pode aprender mais sobre Aspose.Words para Java na documentação.

Veja também