Agregar un identificador visual a los archivos PDF es esencial para proteger la propiedad intelectual y la marca de los documentos. GroupDocs.Watermark Cloud SDK for Java ofrece una API sencilla para incrustar marcas de agua de imagen directamente en los PDFs desde su aplicación Java. En este tutorial aprenderá cómo agregar una marca de agua de imagen a documentos PDF en Java, verá un ejemplo completo en funcionamiento y explorará las llamadas REST equivalentes con cURL para la integración en la nube.

Añadir marca de agua de imagen a documentos PDF en Java en 5 pasos

  1. Inicializar el cliente API: Crear una instancia de ApiClient con su ID de cliente y secreto.
ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

Este paso conecta su código Java al servicio GroupDocs.Watermark Cloud. Consulte la referencia de API para obtener más detalles.

  1. Especifique el archivo PDF de origen: Construya un objeto FileInfo que apunte al PDF que desea marcar con una marca de agua.
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.pdf");

El archivo debe cargarse en su almacenamiento GroupDocs antes de la solicitud.

  1. Configure la marca de agua de imagen: Defina la ruta de la imagen, la opacidad, el factor de escala, la rotación y la alineación.
ImageWatermark imageWatermark = new ImageWatermark();
imageWatermark.setImagePath("watermark.png");
imageWatermark.setOpacity(0.5);
imageWatermark.setScaleFactor(0.3);
imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
imageWatermark.setMargin(new Margin(10, 10, 10, 10));

Ajuste estos valores para lograr la apariencia deseada; la opacidad controla la transparencia, mientras que scaleFactor determina el tamaño relativo a la página.

  1. Establecer opciones de marca de agua y ruta de salida: Combine la información del archivo y la marca de agua en un objeto WatermarkOptions.
WatermarkOptions options = new WatermarkOptions();
options.setFileInfo(fileInfo);
options.setImageWatermark(imageWatermark);
options.setOutputPath("output.pdf");

El outputPath indica al servicio dónde almacenar el PDF resultante.

  1. Ejecutar la solicitud: Construya un AddWatermarkRequest y llame a la API. Maneje respuestas exitosas o de error.
    AddWatermarkRequest request = new AddWatermarkRequest(options);
    try {
        AddWatermarkResponse response = watermarkApi.addWatermark(request);
        System.out.println("Watermark added successfully. Output file: " + response.getPath());
    } catch (Exception e) {
        System.err.println("Error adding watermark: " + e.getMessage());
    }
    
    Después de la ejecución, el PDF con marca de agua está disponible en la ubicación que especificó.

Ejemplo completo de código: agregar marca de agua de imagen a documentos PDF en Java

El siguiente ejemplo demuestra la implementación completa, desde la inicialización del cliente hasta guardar el PDF con marca de agua.

import com.groupdocs.cloud.watermark.api.WatermarkApi;
import com.groupdocs.cloud.watermark.client.ApiClient;
import com.groupdocs.cloud.watermark.model.AddWatermarkRequest;
import com.groupdocs.cloud.watermark.model.AddWatermarkResponse;
import com.groupdocs.cloud.watermark.model.FileInfo;
import com.groupdocs.cloud.watermark.model.ImageWatermark;
import com.groupdocs.cloud.watermark.model.Margin;
import com.groupdocs.cloud.watermark.model.WatermarkOptions;
import com.groupdocs.cloud.watermark.model.enums.HorizontalAlignment;
import com.groupdocs.cloud.watermark.model.enums.VerticalAlignment;

public class AddImageWatermarkExample {
    public static void main(String[] args) {
        // Initialize API client (replace with your actual credentials)
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        WatermarkApi watermarkApi = new WatermarkApi(apiClient);

// Input PDF file information
        FileInfo fileInfo = new FileInfo();
        fileInfo.setFilePath("input.pdf");

// Image watermark configuration
        ImageWatermark imageWatermark = new ImageWatermark();
        imageWatermark.setImagePath("watermark.png");          // Path to watermark image
        imageWatermark.setOpacity(0.5);                        // 50% opacity
        imageWatermark.setScaleFactor(0.3);                    // 30% of page size
        imageWatermark.setRotationAngle(0);                    // No rotation
        imageWatermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
        imageWatermark.setVerticalAlignment(VerticalAlignment.CENTER);
        imageWatermark.setMargin(new Margin(10, 10, 10, 10));  // 10 points margin on all sides

// Watermark options
        WatermarkOptions options = new WatermarkOptions();
        options.setFileInfo(fileInfo);
        options.setImageWatermark(imageWatermark);
        options.setOutputPath("output.pdf"); // Resulting PDF with watermark

// Create request and call API
        AddWatermarkRequest request = new AddWatermarkRequest(options);
        try {
            AddWatermarkResponse response = watermarkApi.addWatermark(request);
            System.out.println("Watermark added successfully. Output file: " + response.getPath());
        } catch (Exception e) {
            System.err.println("Error adding watermark: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

Nota: Este ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de los archivos (input.pdf, watermark.png, output.pdf) para que coincidan con la ubicación real de sus archivos, 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.

Aplicar marca de agua de imagen a documentos PDF mediante cURL y API REST

A continuación se presentan las llamadas REST que puede usar con cURL para lograr el mismo resultado sin escribir código Java.

  1. Obtener un token de acceso

    curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
         -H "Content-Type: application/json" \
         -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
    

    La respuesta contiene un access_token que se utiliza en llamadas posteriores.

  2. Subir el PDF de origen

    curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -F "file=@/path/to/input.pdf"
    
  3. Subir la imagen de marca de agua

    curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=watermark.png" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -F "file=@/path/to/watermark.png"
    
  4. Agregar la marca de agua de imagen

curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/add" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.pdf" },
           "imageWatermark": {
               "imagePath": "watermark.png",
               "opacity": 0.5,
               "scaleFactor": 0.3,
               "horizontalAlignment": "Center",
               "verticalAlignment": "Center",
               "margin": { "top": 10, "right": 10, "bottom": 10, "left": 10 }
           },
           "outputPath": "output.pdf"
         }'

Esta solicitud refleja la lógica del código Java, aplicando los mismos ajustes de opacidad, escala y alineación.

  1. Descargar el PDF con marca de agua
    curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -o output.pdf
    

Para obtener más detalles sobre los cuerpos de solicitud y los parámetros admitidos, consulte la documentación oficial de la API.

Instalación y configuración GroupDocs.Watermark Cloud SDK for Java

Agregue la dependencia de Maven a su pom.xml (o el fragmento equivalente de Gradle). La biblioteca está alojada en Maven Central.

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-watermark-cloud</artifactId>
    <version>23.8</version>
</dependency>

También necesita una cuenta válida de GroupDocs Cloud. Obtenga su Client ID y Client Secret del portal de GroupDocs. No se requiere ninguna instalación adicional en tiempo de ejecución porque el SDK se comunica con el servicio en la nube.

Ajuste fino de las opciones de marca de agua de imagen para documentos PDF

El SDK expone varias propiedades que le permiten controlar la apariencia visual de la marca de agua.

Ajustar Opacidad

imageWatermark.setOpacity(0.75); // 75% opacity for a more visible watermark

Los valores de opacidad van de 0.0 (totalmente transparente) a 1.0 (totalmente opaco).

Cambiar factor de escala

imageWatermark.setScaleFactor(0.5); // Watermark occupies 50% of the page width

El factor de escala determina el tamaño de la marca de agua en relación con las dimensiones de la página.

Establecer alineación y márgenes

imageWatermark.setHorizontalAlignment(HorizontalAlignment.RIGHT);
imageWatermark.setVerticalAlignment(VerticalAlignment.BOTTOM);
imageWatermark.setMargin(new Margin(20, 20, 20, 20));

Estas configuraciones colocan la marca de agua en la esquina inferior derecha con un margen de 20 puntos.

Para obtener una lista completa de las propiedades configurables, consulte la referencia de API.

Conclusión

Agregar una marca de agua de imagen a documentos PDF en Java es una tarea sencilla cuando utilizas el GroupDocs.Watermark Cloud SDK for Java. El SDK maneja toda la manipulación de PDF de bajo nivel, permitiéndote centrarte en los aspectos visuales como la opacidad, el escalado y la posición. Ya sea que prefieras una implementación nativa de Java o un flujo de trabajo basado en cURL en la nube, los mismos resultados de alta calidad son alcanzables sin sacrificar el rendimiento. Recuerda obtener una licencia adecuada para uso en producción; los detalles de precios están disponibles en la página del producto y una página de licencia temporal puede usarse para la evaluación.

FAQs

  • ¿Cómo agregar una marca de agua de imagen a un PDF en Java sin perder calidad?
    Utilice la propiedad scaleFactor para dimensionar la marca de agua en relación con la página y mantener el DPI original del PDF de origen. El SDK conserva la resolución del PDF, por lo que la marca de agua se muestra nítida en cualquier nivel de zoom.

  • ¿Puedo agregar varias marcas de agua al mismo PDF?
    Sí. Crea objetos ImageWatermark separados con diferentes configuraciones y añádelos secuencialmente llamando a addWatermark varias veces o agregándolos a una lista en la solicitud.

  • ¿Cuáles son los formatos de imagen compatibles para la marca de agua?
    La API acepta tipos de imagen comunes como PNG, JPG, BMP, GIF y TIFF. Se recomienda PNG para calidad sin pérdidas y soporte de transparencia.

  • ¿Hay alguna forma de previsualizar la marca de agua antes de aplicarla?
    Puede usar el GroupDocs.Watermark Cloud SDK for Java para generar un PDF temporal con la marca de agua y descargarlo para revisarlo. Esto utiliza la misma llamada addWatermark con una ruta de salida que apunta a una ubicación temporal.

Read More