Agregar marca de agua a PDF con GroupDocs.Watermark para Java
Introducción
En el panorama digital actual, proteger la propiedad intelectual es crucial, y add watermark to PDF es una de las formas más efectivas de hacerlo. Este tutorial le guía a través del uso de GroupDocs.Watermark para Java para incrustar marcas de agua de texto e imagen en archivos PDF. Al final, podrá:
- Inicializar marcas de agua de texto e imagen
- Aplicar marcas de agua condicionalmente según las dimensiones de la imagen
- save PDF with watermark mientras preserva la calidad original
¿Listo para asegurar sus documentos? ¡Comencemos!
Respuestas rápidas
- ¿Qué biblioteca agrega marcas de agua a PDFs en Java? GroupDocs.Watermark for Java.
- ¿Puedo agregar marcas de agua de texto y de imagen? Yes, the API supports both types in a single run.
- ¿Necesito una licencia para desarrollo? A free trial works for testing; a permanent license is required for production.
- ¿Qué formatos de archivo son compatibles? Over 30 formats, including PDF, DOCX, PPTX, and images.
- ¿Qué tamaño de PDF se puede procesar? Up to 2,000 pages without loading the whole file into memory.
¿Qué es add watermark to PDF?
Add watermark to PDF significa incrustar marcas visibles o invisibles —como cadenas de texto o logotipos— directamente en un archivo PDF para indicar propiedad, confidencialidad o branding. Este proceso modifica las capas visuales del documento mientras mantiene intacto el contenido original.
¿Por qué usar GroupDocs.Watermark para Java?
GroupDocs.Watermark soporta más de 30 formatos de documento, puede procesar PDFs de hasta 2,000 páginas en una sola pasada, y agrega hasta 500 marcas de agua por documento sin una caída notable del rendimiento. Su API es completamente segura para hilos, lo que la hace ideal para entornos de servidor de alto rendimiento.
Requisitos previos
Antes de continuar, confirme que tiene:
- Java Development Kit (JDK): Versión 8 o más reciente instalada.
- GroupDocs.Watermark for Java: Versión 24.11 (o más reciente) añadida a su proyecto.
- Herramienta de compilación: Maven preferido, pero una descarga directa del JAR también funciona.
Configuración del entorno
Configuración de Maven
Agregue el repositorio de GroupDocs y la dependencia a su archivo pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/watermark/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>24.11</version>
</dependency>
</dependencies>
Descarga directa
Alternativamente, descargue el JAR más reciente desde la página oficial de lanzamientos: GroupDocs.Watermark for Java releases.
Obtención de licencia
Para una prueba gratuita o una licencia temporal, visite el portal de licencias: GroupDocs Licensing. Las implementaciones en producción deben usar una licencia comprada para eliminar todas las limitaciones de prueba.
Configuración de GroupDocs.Watermark para Java
Después de añadir la biblioteca, importe las clases requeridas en su archivo fuente Java:
import com.groupdocs.watermark.Watermarker;
Este bloque de importación hace que las APIs relacionadas con marcas de agua estén disponibles en todo su proyecto.
Guía de implementación
Dividiremos la implementación en secciones lógicas, cada una respondiendo a una pregunta específica.
¿Cómo agregar marca de agua a PDF en Java?
Watermarker es la clase principal que carga un documento y permite aplicar marcas de agua.
Cargue su PDF con new Watermarker("input.pdf") y luego aplique un objeto de marca de agua antes de llamar a save("output.pdf"). Este enfoque de dos pasos maneja tanto marcas de agua de texto como de imagen en una sola pasada, asegurando que el archivo sea saved PDF with watermark de manera eficiente.
Inicializar marca de agua de texto
Definition anchor: TextWatermark es la clase que representa una superposición textual que puede colocarse en páginas, imágenes o gráficos vectoriales dentro de un documento.
Paso 1: crear instancia TextWatermark
Cree un TextWatermark usando el texto y la configuración de fuente deseados:
// Create a text watermark with custom settings
TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8));
Este ejemplo establece el texto de la marca de agua a “Protected image” usando Arial, tamaño 8.
Paso 2: establecer alineación
Centre la marca de agua horizontal y verticalmente para una posición uniforme:
// Align watermark to the center of images
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
Paso 3: rotar marca de agua
Aplique una rotación de 45 grados para que la marca de agua sea más difícil de eliminar:
// Rotate the watermark by 45 degrees
textWatermark.setRotateAngle(45);
Paso 4: configurar tamaño
Escale la marca de agua en relación con las dimensiones de la imagen objetivo:
// Scale watermark based on parent image size
textWatermark.setSizingType(SizingType.ScaleToParentDimensions);
textWatermark.setScaleFactor(1);
Inicializar marca de agua de imagen
Definition anchor: ImageWatermark encapsula una imagen (PNG, JPEG, BMP, etc.) que se superpondrá al contenido del documento como marca de agua.
Paso 1: cargar archivo de imagen
Cargue la imagen de marca de agua desde el disco:
// Load an image file as a watermark
ImageWatermark imageWatermark = new ImageWatermark("YOUR_DOCUMENT_DIRECTORY\ProtectJpg");
Reemplace la ruta del marcador de posición con la ubicación real de su logotipo o sello.
Paso 2: establecer alineación
Centre la marca de agua de imagen para un impacto visual equilibrado:
// Align image watermark to the center
imageWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
imageWatermark.setVerticalAlignment(VerticalAlignment.Center);
Paso 3: rotar marca de agua de imagen
Aplique una rotación de –30 grados para introducir variación visual:
// Rotate the image watermark by -45 degrees
textWatermark.setRotateAngle(-45);
Paso 4: configurar tamaño
Defina el tamaño de la imagen como un porcentaje del ancho de la imagen subyacente:
// Scale the image watermark relative to its parent dimensions
imageWatermark.setSizingType(SizingType.ScaleToParentDimensions);
imageWatermark.setScaleFactor(1);
Agregar marcas de agua a imágenes en un documento
Definition anchor: Watermarker es la clase central que carga un documento, brinda acceso a sus elementos y escribe marcas de agua de vuelta al archivo.
Paso 1: abrir el documento
Instancie un Watermarker con la ruta a su PDF de origen:
// Open the PDF containing images for watermarking
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY\document.pdf");
Paso 2: recuperar imágenes
Recopile todas las imágenes del PDF que pueden recibir una marca de agua:
// Get a collection of all images within the PDF
WatermarkableImageCollection images = watermarker.getImages();
Paso 3: agregar marcas de agua condicionalmente
Para cada imagen, verifique sus dimensiones; si el ancho supera los 300 px, aplique la marca de agua de texto, de lo contrario use la marca de agua de imagen:
for (int i = 0; i < images.getCount(); i++) {
// Check if the image exceeds specific size criteria
if (images.get_Item(i).getWidth() > 100 && images.get_Item(i).getHeight() > 100) {
// Alternate between text and image watermarks
if (i % 2 == 0) {
images.get_Item(i).add(textWatermark);
} else {
images.get_Item(i).add(imageWatermark);
}
}
}
Esta lógica condicional asegura que solo las imágenes adecuadas reciban la superposición de texto más prominente, optimizando el tiempo de procesamiento.
Paso 4: liberar recursos de imagen
Después del procesamiento, cierre el objeto de marca de agua de imagen para liberar recursos nativos:
// Close the image watermark instance after use
imageWatermark.close();
Paso 5: guardar cambios
Persista las modificaciones guardando el documento en un nuevo archivo:
// Save the PDF with added watermarks in a new file
watermarker.save("YOUR_OUTPUT_DIRECTORY\document.pdf");
El archivo resultante es una versión save PDF with watermark lista para distribución.
Paso 6: limpiar
Dispose del instancia Watermarker para evitar fugas de memoria:
// Close the main watermarker to release document resources
watermarker.close();
Problemas comunes y solución de problemas
- License errors: Ensure the license file path is correctly set via
License.setLicense("license_file_path"). A missing or expired license throws aLicenseException. - Large PDFs: For documents larger than 1,000 pages, enable streaming mode by calling
watermarker.setStreamMode(true)to keep memory consumption low. - Unsupported image formats: GroupDocs.Watermark supports PNG, JPEG, BMP, and GIF. Converting other formats to PNG before loading avoids
UnsupportedFormatException.
Preguntas frecuentes
Q: ¿Puedo agregar una marca de agua a un PDF protegido con contraseña?
A: Yes. Open the document with new Watermarker("file.pdf", "password") and then apply the watermark as usual.
Q: ¿La API soporta procesamiento por lotes de múltiples PDFs?
A: Absolutely. Loop through a folder of PDFs, instantiate a Watermarker for each file, apply the same watermark objects, and save the results.
Q: ¿Cuál es el número máximo de marcas de agua que puedo agregar a un solo PDF?
A: The library can handle 500+ watermarks per document without performance degradation, thanks to its optimized rendering engine.
Q: ¿Es posible hacer que la marca de agua sea invisible (solo metadatos)?
A: Yes. Use the setOpacity(0) method on the watermark object to embed it invisibly for forensic tracking.
Q: ¿Qué versiones de Java son oficialmente compatibles?
A: GroupDocs.Watermark for Java supports JDK 8, 11, and 17, ensuring compatibility with both legacy and modern applications.
Aplicaciones prácticas
Agregar marcas de agua puede servir a varios escenarios del mundo real:
- Document security: Mark confidential files to deter unauthorized sharing.
- Brand protection: Overlay company logos on marketing PDFs.
- Copyright assertion: Embed author names or copyright symbols on published works.
- Version control: Stamp version numbers or dates onto draft documents.
Conclusión
Al seguir este java pdf watermark example, ahora cuenta con una solución completa y lista para producción para add watermark to PDF usando GroupDocs.Watermark para Java. Puede personalizar texto, imágenes, rotación y tamaño, así como aplicar marcas de agua condicionalmente según las dimensiones de la imagen, todo mientras mantiene el proceso rápido y eficiente en memoria.
Last Updated: 2026-08-09
Tested With: GroupDocs.Watermark 24.11 for Java
Author: GroupDocs