Si vous devez ajouter un filigrane à un PDF en Java, une superposition visuelle peut protéger vos documents contre une utilisation non autorisée. Conholdate.Total for Java fournit un SDK puissant qui simplifie la manipulation de PDF côté serveur. Dans ce guide, vous verrez un exemple complet, prêt à l’exécution, apprendrez le fonctionnement de chaque ligne, configurerez la dépendance Maven et découvrirez les options pour ajuster finement l’opacité, la rotation et l’alignement afin d’obtenir des résultats professionnels.

Exemple complet de code : Ajout d’un filigrane texte à un PDF en Java

L’exemple suivant montre comment ajouter un filigrane texte à un PDF en utilisant 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();
        }
    }
}

Remarque : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez-vous de mettre à jour les chemins de fichiers (input.pdf, output.pdf, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Comprendre l’ajout de filigrane à un PDF en code Java

Le code d’ajout de filigrane à un PDF en Java suit une séquence claire que vous pouvez adapter à n’importe quel document PDF.

  1. Initialiser le processeur de filigrane - Watermark watermark = new Watermark(); crée le moteur qui appliquera les filigranes.
  2. Créer un TextWatermark - L’objet TextWatermark contient le texte, la police, la couleur, l’opacité et la rotation.
    Font font = new Font("Arial", Font.BOLD, 48);
    TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
    
  3. Configurer l’apparence - Des méthodes telles que setColor, setOpacity et setRotationAngle définissent l’apparence du filigrane sur la page.
  4. Charger le PDF source - PdfLoadOptions charge le fichier d’entrée et active la mise en cache pour les documents volumineux, ce qui réduit la pression sur la mémoire.
  5. Appliquer et enregistrer - watermark.add(textWatermark, loadOptions); applique le filigrane à chaque page, et watermark.save(outputFile, saveOptions); écrit le résultat.

Chargement du PDF source avec mise en cache

Lorsque vous travaillez avec des PDF de plusieurs mégaoctets, activer un cache empêche le SDK de charger le document complet en mémoire. La ligne loadOptions.setCacheSize(100 * 1024 * 1024); réserve 100 Mo pour le stockage temporaire, permettant au processeur de diffuser les pages au besoin. Cette approche est particulièrement utile dans les environnements serveur où de nombreux travaux de filigrane concurrents peuvent s’exécuter.

Pour des informations détaillées sur l’API, consultez la référence API Java.

Préparer l’environnement pour le filigrane PDF

Le flux de travail d’ajout de filigrane à un PDF en Java commence par l’ajout de la dépendance Maven. Ensuite, vous avez besoin d’un JDK compatible et d’une petite quantité de configuration.

Prérequis et version Java

  • Java 8 ou version supérieure est requis ; le SDK utilise des fonctionnalités de langage modernes et des flux.
  • Maven 3.5+ simplifie la gestion des dépendances.
  • Assurez‑vous que le pom.xml de votre projet inclut le référentiel Conholdate afin que Maven puisse résoudre l’artifact.
<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>

Vous pouvez également obtenir les fichiers JAR directement depuis la page de téléchargement. Après avoir ajouté la dépendance, exécutez mvn clean install pour vérifier que le SDK se trouve sur votre classpath.

Utilisation de l’API REST (Optionnel)

Si vous préférez une approche indépendante du langage, Conholdate.Total propose également un point de terminaison REST qui peut ajouter des filigranes sans aucun code Java. Une simple commande curl ressemble à ceci :

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 version REST suit les mêmes étapes logiques : charger, configurer, appliquer et enregistrer, de sorte que vous puissiez choisir l’approche qui correspond le mieux à votre architecture.

Configuration de l’apparence et de la position du filigrane

Le SDK expose plusieurs propriétés qui vous permettent d’ajuster finement le filigrane. Voici les paramètres les plus fréquemment ajustés.

Personnalisation de la police et de la couleur

Vous pouvez remplacer la police Arial par défaut par n’importe quelle police TrueType disponible sur le serveur. Modifier la couleur est aussi simple que de passer une constante java.awt.Color différente ou de créer une valeur RVB personnalisée.

Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);

Ajustement de l’opacité et de la rotation

L’opacité contrôle la transparence du filigrane. Les valeurs vont de 0.0 (complètement invisible) à 1.0 (totalement opaque). La rotation vous permet d’incliner le texte pour le rendre plus difficile à supprimer.

textWatermark.setOpacity(0.45);      // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise

Alignement du filigrane sur la page

Les propriétés d’alignement horizontal et vertical acceptent Left, Center, Right et Top, Center, Bottom. Le centrage est courant pour les tampons confidentiels, mais vous pouvez placer le filigrane dans un coin à des fins de branding.

textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);

Si vous souhaitez ajouter un filigrane texte à un PDF en Java avec une mise en page différente sur chaque page, vous pouvez modifier ces propriétés à l’intérieur d’une boucle qui traite les pages individuellement. Le SDK prend également en charge les filigranes d’image, les remplissages en dégradé et le texte multilignes si votre cas d’utilisation nécessite une complexité visuelle accrue.

Conclusion

Ajouter un filigrane à un PDF en Java est simple avec Conholdate.Total for Java. Le SDK gère le chargement, le traitement et l’enregistrement des PDF de manière efficace, même pour les gros fichiers grâce à la mise en cache intégrée. En personnalisant l’opacité, la rotation, la police, la couleur et l’alignement, vous pouvez créer des filigranes d’aspect professionnel qui découragent la distribution non autorisée. N’oubliez pas d’obtenir une licence appropriée pour une utilisation en production ; vous pouvez demander une licence temporaire depuis la page de licence temporaire ou consulter les options de tarification sur la page de tarification. Avec le code et les étapes de configuration couverts, vous êtes prêt à intégrer le filigrane PDF dans vos applications Java.

FAQs

Comment puis‑je ajouter un filigrane à un PDF en Java sans écrire du code PDF bas‑niveau ?
Utilisez la classe Watermark de Conholdate.Total for Java. Elle abstrait la structure du PDF, vous permettant de vous concentrer sur les propriétés du filigrane telles que le texte, la police et le placement.

Quelles options sont disponibles pour styliser le filigrane texte ?
Vous pouvez définir la police (new Font(...)), la taille, le style (gras, italique), la couleur (setColor), l’opacité (setOpacity), la rotation (setRotationAngle) et l’alignement (setHorizontalAlignment, setVerticalAlignment). Ces options sont démontrées dans l’exemple de code complet.

Le SDK peut‑il traiter efficacement les gros PDF ?
Oui. En configurant PdfLoadOptions.setCacheSize, vous activez le streaming et la mise en cache, ce qui réduit la consommation de mémoire pour les PDF de plusieurs mégaoctets. Cela rend le flux de travail d’ajout de filigrane à un PDF en Java adapté au traitement par lots sur les serveurs.

Dois-je acheter une licence pour exécuter cet exemple ?
Une licence est requise pour les déploiements en production. Obtenez une licence temporaire depuis la page de licence temporaire ou consultez les détails complets des tarifs sur la page de tarification.

En savoir plus