A formatação de tachado costuma ser necessária para indicar exclusões, revisões ou tarefas concluídas em documentos gerados. Conholdate.Total for Java fornece um SDK robusto que permite manipular documentos Word programaticamente. Neste guia, você aprenderá como adicionar texto tachado em Java, explorar opções de configuração, conhecer as melhores práticas de desempenho e executar um exemplo completo que pode ser adaptado aos seus próprios projetos.

Antes de Começar: Pré-requisitos e Instalação

Para seguir este tutorial, você precisa:

  • Java 17 ou mais recente instalado na sua máquina de desenvolvimento.
  • Maven 3.6+ para gerenciamento de dependências.
  • Uma IDE como IntelliJ IDEA ou Eclipse.

Adicione o repositório Maven da Conholdate e a dependência do SDK ao seu pom.xml:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Baixe os binários mais recentes do SDK na página de download se preferir uma configuração manual. Uma vez que a dependência esteja resolvida, você está pronto para começar a programar. A próxima seção percorre cada passo para adicionar texto tachado em Java.

Guia passo a passo para texto tachado em Java

Etapa 1: Carregar o Documento de Origem

Primeiro, crie uma instância de Document. Se o arquivo de entrada existir, o SDK o carrega; caso contrário, um novo documento vazio é criado.

String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
    doc = new Document(inputPath); // loads existing DOCX
} else {
    doc = new Document();          // creates a new blank document
    doc.removeAllChildren();       // ensure it's empty
}

A classe Document está documentada na referência da API.

Etapa 2: Escreva um Parágrafo Normal

Use DocumentBuilder para adicionar um parágrafo normal. Isso demonstra que o texto padrão não é afetado pelas configurações de tachado.

DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");

Passo 3: Aplicar formatação tachada

Ative a opção de tachado na fonte do construtor antes de escrever o texto formatado.

builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text

Etapa 4: Pesquisar e Aplicar Tachado Condicional

Itere por todos os objetos Run, encontre a palavra “strike” e aplique a formatação programaticamente.

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
    for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
        String text = run.getText();
        if (text != null && text.toLowerCase().contains("strike")) {
            run.getFont().setStrikeThrough(true);
        }
    }
}

Etapa 5: Salvar o Documento

Finalmente, grave o documento modificado no disco no formato DOCX .

String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);

Com o documento salvo, você pode abrir output.docx para verificar se a formatação de tachado aparece como esperado.

Exemplo completo em funcionamento para texto tachado - Exemplo Java

O código a seguir demonstra o fluxo de trabalho completo para adicionar texto tachado em Java usando Conholdate.Total.

import com.aspose.words.*;

import java.io.File;

public class StrikethroughExample {
    public static void main(String[] args) {
        String inputPath = "input.docx";
        String outputPath = "output.docx";

Document doc = null;
        try {
            File inputFile = new File(inputPath);
            if (inputFile.exists()) {
                doc = new Document(inputPath);
            } else {
                doc = new Document();
                doc.removeAllChildren();
            }

DocumentBuilder builder = new DocumentBuilder(doc);
            builder.moveToDocumentEnd();

builder.writeln("This is a normal paragraph.");

builder.getFont().setStrikeThrough(true);
            builder.writeln("This text is rendered with strikethrough.");
            builder.getFont().setStrikeThrough(false);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
                for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
                    String text = run.getText();
                    if (text != null && text.toLowerCase().contains("strike")) {
                        run.getFont().setStrikeThrough(true);
                    }
                }
            }

doc.save(outputPath, SaveFormat.DOCX);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (doc != null) {
                doc = null;
            }
        }
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar todos os caminhos de arquivos e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se você encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Ajustando as Opções de Estilização de Tachado

O SDK permite controlar atributos de fonte adicionais, como cor, tamanho e sublinhado, mantendo a bandeira de tachado ativada. Por exemplo, você pode alterar a cor do texto tachado:

builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");

Se precisar aplicar o mesmo estilo a muitas execuções, considere criar uma instância reutilizável de Font e atribuí‑la a cada Run para evitar a configuração repetitiva de propriedades.

Considerações de desempenho para renderização de tachado

  1. Reutilizar o objeto Document - carregar um documento uma única vez e executar todas as modificações em uma única sessão reduz a sobrecarga de I/O.
  2. Alterações de estilo em lote - aplique a bandeira de tachado a uma coleção de Paragraph ou Run em vez de alterná‑la para cada caractere.
  3. Evitar percursos desnecessários - o loop condicional que procura a palavra “strike” deve ser executado somente quando você realmente precisar de estilização dinâmica.
  4. Transmitir a saída quando possível - para documentos grandes, use doc.save(OutputStream, SaveFormat.DOCX) para gravar diretamente em um fluxo e conservar memória.

Essas dicas ajudam a manter o uso de memória baixo e o tempo de execução rápido, especialmente ao processar centenas de documentos em um trabalho em lote.

Considerações Finais

Adicionar texto tachado em Java é simples com Conholdate.Total for Java. A API fluente do SDK permite misturar parágrafos normais e estilizados, aplicar formatação condicional e salvar os resultados em formatos padrão da indústria. Lembre‑se de configurar sua dependência Maven, reutilizar objetos de documento e aplicar estilos de forma eficiente para alcançar desempenho ideal. Para implantações em produção, você precisará de uma licença válida; detalhes de preços estão disponíveis na página de preços e uma licença temporária pode ser obtida na página de licença temporária. Feliz codificação!

Perguntas que Você Pode Ter

  • Como aplicar texto tachado em Java sem definir manualmente a flag para cada execução?
    Use DocumentBuilder.getFont().setStrikeThrough(true) antes de escrever o parágrafo. A flag permanece ativa até que você a redefina, permitindo escrever várias linhas com o mesmo estilo.

  • Posso aplicar tachado automaticamente a cada ocorrência de uma palavra‑chave?
    Sim. Percorra cada Run como mostrado no tutorial, verifique run.getText() para a palavra‑chave e chame run.getFont().setStrikeThrough(true) quando encontrar uma correspondência.

  • Quais formatos de documento preservam o tachado ao serem salvos?
    DOCX, DOC, RTF, e outros formatos rich‑text mantêm o atributo de tachado. Consulte a documentação oficial para obter uma lista completa de formatos suportados.

  • Aplicar muitos estilos de tachado desacelera o processamento de arquivos grandes?
    O impacto é mínimo se você seguir as dicas de desempenho: reutilizar a instância Document, agrupar alterações de estilo e evitar percursos redundantes. Isso mantém o uso de memória baixo e acelera o processamento.

Artigos Relacionados