El formato de tachado a menudo es necesario para indicar eliminaciones, revisiones o tareas completadas dentro de documentos generados. Conholdate.Total for Java proporciona un SDK robusto que le permite manipular documentos Word de forma programática. En esta guía aprenderá cómo agregar texto tachado en Java, explorar opciones de configuración, ver las mejores prácticas de rendimiento y ejecutar un ejemplo completo que puede adaptar a sus propios proyectos.

Antes de comenzar: Requisitos previos e instalación

Para seguir este tutorial necesitas:

  • Java 17 o una versión más reciente instalada en su máquina de desarrollo.
  • Maven 3.6+ para la gestión de dependencias.
  • Un IDE como IntelliJ IDEA o Eclipse.

Agregue el repositorio Maven de Conholdate y la dependencia del SDK a su 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>

Descarga los binarios más recientes del SDK desde la página de descarga si prefieres una configuración manual. Una vez resuelta la dependencia, estás listo para comenzar a programar. La siguiente sección explica paso a paso cómo agregar texto tachado en Java.

Guía paso a paso para texto tachado en Java

Paso 1: Cargar el documento de origen

Primero, cree una instancia de Document. Si el archivo de entrada existe, el SDK lo carga; de lo contrario, se crea un nuevo documento vacío.

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
}

La clase Document está documentada en la referencia de API.

Paso 2: Escribir párrafo normal

Use DocumentBuilder para agregar un párrafo normal. Esto demuestra que el texto normal no se ve afectado por la configuración de tachado.

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

Paso 3: Aplicar formato tachado

Active la bandera de tachado en la fuente del constructor antes de escribir el texto con estilo.

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

Paso 4: Buscar y aplicar tachado condicional

Itera a través de todos los objetos Run, busca la palabra “strike” y aplica el formato programáticamente.

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);
        }
    }
}

Paso 5: Guardar el documento

Finalmente, escriba el documento modificado en disco en formato DOCX.

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

Con el documento guardado, puedes abrir output.docx para verificar que el estilo de tachado aparezca como se espera.

Ejemplo completo y funcional para texto tachado en Java

El siguiente código muestra el flujo de trabajo completo para agregar texto tachado en 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 ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar cualquier ruta de archivo y valores de configuración para que coincidan con su entorno real, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Ajuste fino de las opciones de estilo de tachado

El SDK le permite controlar atributos de fuente adicionales, como color, tamaño y subrayado, mientras mantiene habilitada la bandera de tachado. Por ejemplo, puede cambiar el color del texto tachado:

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

Si necesita aplicar el mismo estilo a muchos Run, considere crear una instancia reutilizable de Font y asignarla a cada Run para evitar la configuración repetitiva de propiedades.

Consideraciones de rendimiento para la representación de tachado

  1. Reutilizar el objeto Document - cargar un documento una sola vez y realizar todas las modificaciones en una única sesión reduce la sobrecarga de E/S.
  2. Cambios de estilo por lotes - aplicar la bandera de tachado a una colección de Paragraph o Run en lugar de alternarla para cada carácter.
  3. Evitar recorridos innecesarios - el bucle condicional que busca la palabra “strike” debe ejecutarse solo cuando realmente se necesita un estilo dinámico.
  4. Transmitir la salida cuando sea posible - para documentos grandes, use doc.save(OutputStream, SaveFormat.DOCX) para escribir directamente a un flujo y conservar la memoria.

Estos consejos ayudan a mantener bajo el consumo de memoria y rápido el tiempo de ejecución, especialmente al procesar cientos de documentos en un trabajo por lotes.

Reflexiones finales

Agregar texto tachado en Java es sencillo con Conholdate.Total for Java. La API fluida del SDK le permite mezclar párrafos normales y con estilo, aplicar formato condicional y guardar los resultados en formatos estándar de la industria. Recuerde configurar su dependencia Maven, reutilizar los objetos de documento y aplicar estilos de manera eficiente para lograr un rendimiento óptimo. Para implementaciones en producción necesitará una licencia válida; los detalles de precios están disponibles en la página de precios y se puede obtener una licencia temporal en la página de licencia temporal. ¡Feliz codificación!

Preguntas que podrías tener

  • ¿Cómo aplico texto tachado en Java sin establecer manualmente la bandera para cada ejecución?
    Use DocumentBuilder.getFont().setStrikeThrough(true) antes de escribir el párrafo. La bandera permanece activa hasta que la restablezca, lo que le permite escribir varias líneas con el mismo estilo.

  • ¿Puedo tachar automáticamente cada aparición de una palabra clave?
    Sí. Itera a través de cada Run como se muestra en la guía paso a paso, verifica run.getText() para la palabra clave y llama a run.getFont().setStrikeThrough(true) cuando se encuentre una coincidencia.

  • ¿Qué formatos de documento conservan el tachado al guardarse?
    DOCX, DOC, RTF, y otros formatos de texto enriquecido mantienen el atributo de tachado. Consulte la documentación oficial para obtener una lista completa de los formatos compatibles.

  • ¿Aplicar muchos estilos de tachado ralentizará el procesamiento de archivos grandes?
    El impacto es mínimo si sigues los consejos de rendimiento: reutiliza la instancia Document, agrupa los cambios de estilo y evita recorridos redundantes. Esto mantiene bajo el uso de memoria y acelera el procesamiento.

Artículos relacionados