Agregar notas personalizadas o marcas de agua a menudo requiere que añada texto a PDF en aplicaciones Java. Conholdate.Total for Java es un SDK potente que permite a los desarrolladores editar archivos PDF de forma programática. Esta guía le lleva a través de los requisitos previos, un recorrido detallado del código y un ejemplo completo para que pueda superponer texto personalizado en PDFs existentes con facilidad.

Requisitos y configuración

Antes de comenzar, asegúrese de tener lo siguiente:

  • Java 8 o superior instalado.
  • Maven para la gestión de dependencias.
  • Un IDE como IntelliJ IDEA o Eclipse.
  • Una licencia válida de Conholdate.Total for Java para uso en producción (ver la sección de licencias más adelante).

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>

Descargue los binarios más recientes del SDK desde la página de descarga. Después de que la compilación de Maven se complete con éxito, estará listo para comenzar a programar. La siguiente sección muestra exactamente cómo cargar un PDF e insertar texto.

Añadir texto a PDF en Java: Guía paso a paso

A continuación se muestra una guía concisa de cada paso lógico. El código fuente completo se reproduce más adelante en la sección Ejemplo de código completo.

Paso 1: Abra el PDF y cree un TextBuilder

Primero, abra el PDF de origen con la clase Document, luego cree un TextBuilder que apunte a la página a la que desea agregar texto.

String dataDir = "path/to/your/document/directory/";

// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

Las clases Document y TextBuilder están documentadas en la referencia de API.

Paso 2: Crear y Configurar un TextParagraph

Construya un TextParagraph y configure su diseño: la sangría aplicada a las líneas subsecuentes, el rectángulo que delimita el área de texto en la página y el modo de ajuste de línea.

// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

Paso 3: Crear un TextFragment y Configurar la Fuente

Cree un TextFragment que contenga el texto que desea superponer, luego establezca su fuente y tamaño de fuente mediante getTextState().

// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);

Paso 4: Añadir el fragmento y el párrafo

Agregue el fragmento de texto como una línea dentro del párrafo, luego añada el párrafo a la página mediante el TextBuilder.

// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);

Paso 5: Guardar el PDF modificado

Finalmente, construya la ruta de salida y guarde el documento resultante.

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
doc.save(dataDir);

Con estos pasos, ha completado el flujo de trabajo de inserción de texto en PDF.

Ejemplo de código completo: Insertar texto en PDF con Java

El siguiente ejemplo muestra todo el proceso, desde cargar el archivo de origen hasta guardar el PDF actualizado.

Este ejemplo muestra cómo agregar texto a un PDF existente usando Conholdate.Total for Java.

import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;

public class AddTextToPdf {
    public static void main(String[] args) {
        String dataDir = "path/to/your/document/directory/";

// Open document
        Document doc = new Document(dataDir + "Conholdate.pdf");
        TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

// Create text paragraph
        TextParagraph paragraph = new TextParagraph();
        // Set subsequent lines indent
        paragraph.setSubsequentLinesIndent(20);
        // Specify the location to add TextParagraph
        paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
        // Specify word wrapping mode
        paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

// Create text fragment
        TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
        fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
        fragment1.getTextState().setFontSize(12);

// Add fragment to paragraph
        paragraph.appendLine(fragment1);
        // Add paragraph
        builder.appendParagraph(paragraph);

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
        doc.save(dataDir);
    }
}

Nota: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar dataDir para que apunte a su directorio de documentos real (que contiene Conholdate.pdf), 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.

Conclusión

En este tutorial mostramos cómo agregar texto a un PDF en Java utilizando las robustas funciones de Conholdate.Total for Java. Siguiendo la guía paso a paso, puedes crear párrafos de texto de forma fiable con TextBuilder y TextParagraph, controlar el estilo de fuente mediante TextFragment y guardar el documento modificado. El SDK maneja internamente las coordenadas de página del PDF y el renderizado de texto, por lo que puedes centrarte en la lógica de negocio. Recuerda adquirir una licencia adecuada para uso en producción; puedes obtener una licencia temporal en la página de licencia temporal o explorar las opciones de precios en la página de precios. Con estas herramientas, mejorar los PDFs con texto personalizado se convierte en una parte sencilla de tu aplicación Java.

Preguntas frecuentes

  • ¿Cómo agregar texto a PDF en Java sin sobrescribir el contenido existente?
    Use builder.appendParagraph(paragraph) como se muestra en el ejemplo; TextBuilder agrega el nuevo párrafo a la página de destino, preservando cualquier contenido existente.

  • ¿Es posible agregar un texto de marca de agua personalizado a un PDF en Java?
    Sí. El mismo enfoque funciona para marcas de agua — crea un TextFragment con el texto de marca de agua deseado, configura una fuente y tamaño adecuados (o transparencia mediante el estado de texto), y añádelo a través de un TextParagraph en cada página.

  • ¿Qué debo hacer si el texto insertado no aparece correctamente para ciertos idiomas?
    Elija una fuente que admita el conjunto de caracteres requerido con FontRepository.findFont(). El SDK respeta la configuración de fuentes aplicada a través de getTextState(), y la documentación ofrece orientación sobre el manejo de diferentes escrituras.

  • ¿Puedo procesar por lotes varios PDFs para agregar el mismo texto?
    Absolutamente. Envuelva el código dentro de un bucle que itere sobre una lista de rutas de archivo, reutilizando la misma lógica Document/TextBuilder para cada archivo.

Leer más