Si necesita agregar una marca de agua a PDF en Java, una superposición visual puede proteger sus documentos del uso no autorizado. Conholdate.Total for Java ofrece un SDK potente que simplifica la manipulación de PDF en el lado del servidor. En esta guía verá un ejemplo completo, listo para ejecutar, aprenderá cómo funciona cada línea, configurará la dependencia de Maven y descubrirá opciones para ajustar finamente la opacidad, la rotación y la alineación para obtener resultados profesionales.
Ejemplo de código completo: Añadiendo una marca de agua de texto a PDF en Java
El siguiente ejemplo muestra cómo agregar una marca de agua de texto a un PDF usando Conholdate.Total for Java.
import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;
public class AddPdfWatermark {
public static void main(String[] args) {
String inputFile = "input.pdf";
String outputFile = "output.pdf";
// Create a text watermark
Font font = new Font("Arial", Font.BOLD, 48);
TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
textWatermark.setColor(Color.RED);
textWatermark.setOpacity(0.3);
textWatermark.setRotationAngle(45);
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
// Load options for the source PDF (enable caching for large files)
PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache
// Initialize the Watermark processor
Watermark watermark = new Watermark();
try {
// Apply the watermark to every page of the PDF
watermark.add(textWatermark, loadOptions);
// Save the watermarked PDF
PdfSaveOptions saveOptions = new PdfSaveOptions();
watermark.save(outputFile, saveOptions);
} catch (Exception e) {
System.err.println("Failed to add watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
Nota: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de los archivos (
input.pdf,output.pdf, etc.) para que coincidan con sus ubicaciones reales, 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.
Entendiendo cómo agregar una marca de agua a PDF en Java
El código para agregar una marca de agua a PDF en Java sigue una secuencia clara que puedes adaptar a cualquier documento PDF.
- Inicializar el procesador de marcas de agua -
Watermark watermark = new Watermark();crea el motor que aplicará las marcas de agua. - Crear un TextWatermark - El objeto
TextWatermarkcontiene el texto, la fuente, el color, la opacidad y la rotación.Font font = new Font("Arial", Font.BOLD, 48); TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font); - Configurar la apariencia - Métodos como
setColor,setOpacityysetRotationAngledefinen cómo se ve la marca de agua en la página. - Cargar el PDF de origen -
PdfLoadOptionscarga el archivo de entrada y habilita el almacenamiento en caché para documentos grandes, lo que reduce la presión de memoria. - Aplicar y guardar -
watermark.add(textWatermark, loadOptions);aplica la marca de agua a cada página, ywatermark.save(outputFile, saveOptions);escribe el resultado.
Cargando el PDF de origen con caché
Cuando trabajas con PDFs de varios megabytes, habilitar una caché evita que el SDK cargue todo el documento en memoria. La línea loadOptions.setCacheSize(100 * 1024 * 1024); reserva 100 MB para almacenamiento temporal, permitiendo que el procesador transmita páginas según sea necesario. Este enfoque es especialmente útil en entornos de servidor donde pueden ejecutarse muchos trabajos de marca de agua concurrentes.
Para obtener información detallada de la API, consulte la referencia de la API de Java.
Preparando el entorno para la marca de agua en PDF
El flujo de trabajo para agregar una marca de agua a PDF en Java comienza añadiendo la dependencia de Maven. Después de eso, necesita un JDK compatible y una pequeña cantidad de configuración.
Requisitos y versión de Java
- Se requiere Java 8 o superior; el SDK utiliza características modernas del lenguaje y streams.
- Maven 3.5+ simplifica la gestión de dependencias.
- Asegúrese de que el
pom.xmlde su proyecto incluya el repositorio Conholdate para que Maven pueda resolver el artefacto.
<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>
También puedes obtener los archivos JAR directamente desde la página de descarga. Después de agregar la dependencia, ejecuta mvn clean install para verificar que el SDK esté en tu classpath.
Uso de la API REST (Opcional)
Si prefiere un enfoque independiente del lenguaje, Conholdate.Total también ofrece un endpoint REST que puede agregar marcas de agua sin necesidad de código Java. Un comando curl simple se ve así:
curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.pdf" \
-F "text=CONFIDENTIAL" \
-F "font=Arial" \
-F "fontSize=48" \
-F "color=FF0000" \
-F "opacity=0.3" \
-F "angle=45" \
-F "horizontalAlignment=center" \
-F "verticalAlignment=center" \
-o output.pdf
La versión REST sigue los mismos pasos lógicos cargar, configurar, aplicar y guardar, de modo que pueda elegir el enfoque que mejor se adapte a su arquitectura.
Configuración de la apariencia y posición de la marca de agua
El SDK expone varias propiedades que le permiten ajustar finamente la marca de agua. A continuación se presentan los ajustes más frecuentemente modificados.
Personalizando fuente y color
Puede reemplazar la fuente Arial predeterminada con cualquier fuente TrueType disponible en el servidor. Cambiar el color es tan simple como pasar una constante diferente de java.awt.Color o crear un valor RGB personalizado.
Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);
Ajustar Opacidad y Rotación
La opacidad controla cuán transparente aparece la marca de agua. Los valores van desde 0.0 (completamente invisible) hasta 1.0 (totalmente opaco). La rotación le permite inclinar el texto para que sea más difícil de eliminar.
textWatermark.setOpacity(0.45); // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise
Alineando la marca de agua en la página
Las propiedades de alineación horizontal y vertical aceptan Left, Center, Right y Top, Center, Bottom. El centrado es común para sellos confidenciales, pero puedes colocar la marca de agua en una esquina para fines de marca.
textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);
Si deseas agregar una marca de agua de texto a PDF en Java con un diseño diferente en cada página, puedes modificar estas propiedades dentro de un bucle que procesa las páginas individualmente. El SDK también admite marcas de agua de imagen, rellenos degradados y texto multilínea si tu caso de uso requiere mayor complejidad visual.
Conclusión
Agregar una marca de agua a PDF en Java es sencillo con Conholdate.Total for Java. El SDK maneja la carga, el procesamiento y el guardado de PDFs de manera eficiente, incluso para archivos grandes gracias al almacenamiento en caché incorporado. Al personalizar la opacidad, la rotación, la fuente, el color y la alineación, puedes crear marcas de agua de aspecto profesional que desalientan la distribución no autorizada. Recuerda obtener una licencia adecuada para uso en producción; puedes solicitar una licencia temporal en la página de licencia temporal o revisar las opciones de precios en la página de precios. Con el código y los pasos de configuración cubiertos, estás listo para integrar la marca de agua de PDF en tus aplicaciones Java.
Preguntas frecuentes
¿Cómo puedo agregar una marca de agua a PDF en Java sin escribir código PDF de bajo nivel?
Utilice la clase Watermark de Conholdate.Total for Java. Abstracta la estructura del PDF, permitiéndole centrarse en las propiedades de la marca de agua, como el texto, la fuente y la ubicación.
¿Qué opciones están disponibles para dar estilo a la marca de agua de texto?
Puede establecer la fuente (new Font(...)), el tamaño, el estilo (negrita, cursiva), el color (setColor), la opacidad (setOpacity), la rotación (setRotationAngle) y la alineación (setHorizontalAlignment, setVerticalAlignment). Estas opciones se demuestran en el ejemplo de código completo.
¿Puede el SDK procesar PDFs grandes de manera eficiente?
Sí. Al configurar PdfLoadOptions.setCacheSize, habilita la transmisión y el almacenamiento en caché, lo que reduce el consumo de memoria para PDFs de varios megabytes. Esto hace que el flujo de trabajo de agregar marca de agua a PDF en Java sea adecuado para el procesamiento por lotes en servidores.
¿Necesito comprar una licencia para ejecutar este ejemplo?
Se requiere una licencia para implementaciones en producción. Obtenga una licencia temporal en la página de licencia temporal o explore los detalles completos de precios en la página de precios.
