Ajouter un filigrane au PDF

Un filigrane est un texte ou une image qui apparaît devant ou derrière le contenu d’un document existant, comme un tampon. Par exemple, vous pouvez appliquer un filigrane « Confidentiel » sur des pages contenant des informations sensibles. Les filigranes peuvent être utilisés pour protéger les informations confidentielles et pour indiquer la validité d’un document juridique. Vous pouvez également filigraner n’importe quel billet de banque en papier, où ils aident à prévenir la contrefaçon. Dans cet article, nous allons discuter des fonctionnalités liées au filigrane dans un document PDF.

API REST de manipulation de PDF

Aspose.PDF Cloud est notre API REST primée qui offre les capacités de créer, de manipuler et de restituer des fichiers PDF dans d’autres formats pris en charge, notamment DOCX, PPTX, XLSX, XPS, SVG, JPEG, etc. Parlons maintenant de Aspose.PDF Cloud SDK for Java qui est un wrapper Java autour de l’API Aspose.PDF Cloud. Il fournit toutes les fonctionnalités de l’API REST Cloud, y compris la possibilité d’ajouter un filigrane au PDF à l’aide du langage de programmation Java.

Pour utiliser Java Cloud SDK, la première étape consiste à installer Aspose.PDF Cloud SDK for Java. Le Cloud SDK est disponible en téléchargement sur Maven | GitHub. Vous trouverez ci-dessous les détails sur la manière de télécharger et d’utiliser Aspose.Pdf.jar dans le projet de build Maven.

Ajoutez les dépendances suivantes dans votre fichier pom.xml.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

Ajouter un filigrane de texte dans un PDF à l’aide de l’API REST

Pour utiliser les API Cloud, vous devez d’abord créer un compte sur tableau de bord Aspose.Cloud où vous verrez vos informations personnalisées d’ID client et de secret client. Ces informations sont essentielles pour accéder aux API. Vous trouverez ci-dessous les détails sur la façon d’ajouter un filigrane de texte à un document PDF existant à l’aide de Java

  • Tout d’abord, vous devez spécifier les détails de votre ID client et de votre secret client par rapport à deux variables.
  • Deuxièmement, créez un objet de classe PdfApi en fournissant l’ID client et le secret client comme arguments.
  • Troisièmement, créez un objet de classe TextState où nous spécifions le nom de la police comme Arial et la taille de la police comme 14.
  • Nous devons maintenant créer une instance de la classe TextStamp. Lors de l’utilisation de cet objet, nous spécifierons HorizontalAlignment comme centre, la valeur du tampon de texte, la taille de la police et les détails du type de police sont spécifiés à l’aide de la méthode textState(..) où l’objet TextState créé à l’étape ci-dessus est passé en argument. Les détails de la marge et VerticalAlignment sont également spécifiés comme Center.
  • Afin d’afficher le TextStamp en arrière-plan, la méthode background(..) est utilisée avec un argument true.
  • De plus, l’opacité, l’angle de rotation, le facteur de zoom et le retrait XY du tampon sont également spécifiés.
  • Créez maintenant un objet de la classe List avec le type TextStamp et ajoutez l’objet tampon créé ci-dessus à cette liste.
  • Enfin, appelez la méthode postPageTextStamps(..) de PdfAPi et transmettez l’entrée PDF, le numéro de page et la liste des tampons comme argument pour lancer le processus de tampon.
// Pour des exemples complets et le code source, veuillez visiter https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";

// créer une instance de PdfApi en utilisant les détails de l'ID client et du secret client
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);

// créer un objet de TextState et spécifier les détails de formatage de la police
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");

com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
       	.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
  	.value("Text Stamp")
	.textState(textState)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
 
	stamp.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
	.rotateAngle(45.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.);
        
// créer un objet Liste avec le type TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();

// ajouter une instance de TextStamp à la liste des TextStamps
stamps.add(stamp);

// appeler la méthode postTextStamp sur la première page du fichier PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);
TextStamp ajouté au PDF

Image 1 : tampon de texte ajouté au document PDF.

Les fichiers d’exemple utilisés dans l’exemple ci-dessus peuvent être téléchargés à partir des liens suivants :

Comment ajouter un filigrane d’image dans un PDF à l’aide de Java

Avec moins de lignes de code, le filigrane d’image peut facilement être ajouté à un document PDF. Vous trouverez ci-dessous les étapes à suivre pour ajouter une image JPEG à un fichier PDF.

  • La première étape consiste à créer un objet PdfApi en passant ClientSecret et ClientID comme argument.
  • L’étape suivante consiste à créer un objet ImageStamp dans lequel nous définissons le fichier image à tamponner, les détails des marges et VerticalAlignment. Dans notre cas, nous avons sélectionné la valeur Center dans l’énumération VerticalAlignment.
  • Définissez ImageStamp.background(True) de sorte que l’image apparaisse derrière le contenu de la page. Sinon, elle apparaîtra au-dessus du contenu de la page.
  • Créez un objet Liste de type ImageStamp et ajoutez l’objet ImageStamp créé à la deuxième étape à cette collection.
  • Enfin, appelez la méthode postPageImageStamps(…) de la classe PdfApi où nous passons le PDF d’entrée, le numéro de page pour le filigrane et la liste ImageStamp créée ci-dessus comme argument.
  • Le fichier PDF avec filigrane d’image est enregistré sur le même stockage cloud. L’aperçu du fichier résultant est affiché ci-dessous.
// Pour des exemples complets et le code source, veuillez visiter https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// créer une instance de PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String file = "PdfWithTable.pdf";
// Image source à utiliser pour le filigrane
String image = "Koala.jpg";
// numéro de page où le filigrane sera ajouté
int pageNumber = 1;

// créer une instance de l'objet ImageStamp
ImageStamp stampObject = new ImageStamp()
	.fileName(image)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(214.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
	
	// ajouter un filigrane derrière le contenu de la page
	stampObject.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(0.2);

// créer une liste d'objets ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();

// Ajouter ImageStamp à la liste des ImageStamps
stamps.add(stampObject);

// appeler la méthode API pour ajouter une image en filigrane au PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);
Tampon d'image ajouté au PDF

Image 2 : tampon d’image ajouté au document PDF.

Les fichiers d’exemple utilisés dans l’exemple ci-dessus peuvent être téléchargés à partir du lien suivant.

Ajouter une page PDF comme filigrane

Outre le texte et l’image, la page PDF peut également être ajoutée en tant que filigrane à un document PDF existant. Vous trouverez ci-dessous les étapes à suivre pour répondre à ces exigences.

  • Tout d’abord, créez un objet de classe PdfApi en passant l’ID client et le secret client comme arguments.
  • Deuxièmement, créez une instance de la classe PdfPageStamp. Cette classe est utilisée pour spécifier le chemin du document PDF qui sera utilisé pour le filigrane.
  • La méthode PdfPageStamp.pageIndex(..) est utilisée pour spécifier le numéro de page du fichier PDF qui sera utilisé pour le filigrane.
  • Parmi d’autres méthodes, background(..) est important car il est utilisé pour définir un filigrane derrière le contenu PDF ou le conserver sur le contenu.
  • Créez ensuite une liste de type PdfPageStamp et ajoutez l’objet PdfPageStamp créé ci-dessus à la collection List.
  • Enfin, appelez la méthode postPagePdfPageStamps(…) de la classe PdfApi où nous passons le fichier PDF source, l’index de la page à filigraner et la liste des PdfPageStamp comme argument. Le résultat est enregistré sur un stockage cloud.
// Pour des exemples complets et le code source, veuillez visiter https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Obtenez ClientID et ClientSecret depuis https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// créer une instance PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String sourcePDF = "PdfWithAnnotations.pdf";

// PDF source à utiliser pour le filigrane
String stampPDF = "rusdoc.pdf";

// numéro de page où le filigrane sera ajouté
int pageNumber = 1;

// créer une instance de l'objet PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
	// Fichier PDF à utiliser comme filigrane
  	.fileName(stampPDF)
	// spécifiez l'index de la page que vous souhaitez ajouter comme filigrane
	.pageIndex(1)
	.leftMargin(150.)
	.rightMargin(2.)
	
	// nous avons défini une marge supérieure de -ve pour déplacer le filigrane PDF vers le haut
	.topMargin(-330.)
	.bottomMargin(414.)
	
  	// définir l'alignement vertical du filigrane en haut
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
	
  	// amener le filigrane au premier plan/visible
	stampObject.background(false)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	
  	// définissez le facteur de zoom sur 0,7 pour qu'il soit comprimé plutôt qu'il apparaisse à 100 %
	.zoom(0.7);

// créer une liste d'objets PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
	
// Ajouter PdfPageStamp à la liste des ImageStamps
stamps.add(stampObject);
	
// appeler la méthode API pour ajouter un PDF en filigrane
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);
Fichier PDF en filigrane

Image 3 : Aperçu du fichier PDF ajouté en tant que filigrane.

Les fichiers d’exemple utilisés dans l’exemple ci-dessus peuvent être téléchargés à partir des liens suivants

Ajouter le numéro de page comme filigrane

Les détails du numéro de page sont très importants du point de vue de la convivialité car ils donnent une indication claire au lecteur concernant la longueur du document ainsi que la page qu’il parcourt.

  • Une fois que nous avons créé l’instance PdfApi, créez un objet de classe PageNumberStamp.
  • utilisez la méthode value(…) de la classe PageNumberStamp pour spécifier le modèle du tampon PageNumber.
  • Une autre méthode importante est setStartingNumber(..) qui indique le nombre à partir duquel le filigrane du numéro de page doit commencer.
  • L’autre morceau de code comprenant les détails de marge, l’opacité, l’angle de rotation, le facteur oom, etc. sont les mêmes que les extraits de code ci-dessus.
  • Nous devons spécifier le startPageNumber et le endPageNumber où le filigrane du numéro de page doit être placé.
  • Enfin, appelez postDocumentPageNumberStamps(…) qui prend le fichier PDF d’entrée, l’objet PageNumberStamp, les informations de page de début et de fin comme arguments et ajoute le filigrane du numéro de page dans le fichier source.
// Pour des exemples complets et le code source, veuillez visiter https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Obtenez ClientID et ClientSecret depuis https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
				
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// document PDF d'entrée
String sourcePDF = "PdfWithTable.pdf";

// créer une instance de l'objet PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()

	// Format du filigrane du numéro de page
  	.value("Page #")
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	
	// définir l'alignement vertical du filigrane en bas
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
	
	// spécifier le numéro de départ du compteur
	stampObject.setStartingNumber(3);

	// amener le filigrane au premier plan/visible
	stampObject.background(false)
	
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.0);

// formulaire de page de départ où mettre le filigrane
int startPageNumber = 2;
	
// index de page vers lequel le filigrane doit être placé
int endPageNumber = 3;
	
// appeler la méthode API pour ajouter un PDF en filigrane
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);
Tampon de numéro de page dans le PDF

Image 4 : Aperçu du numéro de page en filigrane dans un PDF.

Les fichiers d’exemple utilisés dans l’exemple ci-dessus peuvent être téléchargés à partir du lien suivant :

Astuce rapide

Aspose.PDF Cloud SDK pour Java est si puissant qu’avec quelques lignes de code, vous pouvez convertir les formats JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL au format PDF. Pour plus d’informations, veuillez consulter la page produit.

Conclusion

Dans cet article de blog, nous avons découvert les étapes à suivre pour ajouter facilement des informations de texte, d’image, de PDF et de numéro de page à des documents PDF existants à l’aide de Aspose.PDF Cloud SDK for Java. Veuillez noter que nos SDK Cloud sont open source et que vous pouvez également télécharger leur code source complet et le modifier selon vos besoins. Le code source complet peut être téléchargé à partir du référentiel GitHub. Si vous avez des questions à ce sujet, n’hésitez pas à nous contacter via les forums d’assistance gratuits.