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
dataDirpara que apunte a su directorio de documentos real (que contieneConholdate.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?
Usebuilder.appendParagraph(paragraph)como se muestra en el ejemplo;TextBuilderagrega 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 unTextFragmentcon 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 unTextParagraphen 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 conFontRepository.findFont(). El SDK respeta la configuración de fuentes aplicada a través degetTextState(), 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ógicaDocument/TextBuilderpara cada archivo.
