Aggiungere filigrana al PDF

Una filigrana è un testo o un’immagine che appare davanti o dietro il contenuto di un documento esistente, come un timbro. Ad esempio, potresti applicare una filigrana “Riservata” alle pagine con informazioni sensibili. Le filigrane possono essere utilizzate per proteggere informazioni riservate e per indicare la validità di un documento legale. Puoi anche filigranare qualsiasi banconota cartacea, dove aiutano a prevenire la contraffazione. In questo articolo, discuteremo le funzionalità relative alla filigrana nei documenti PDF.

API REST per la manipolazione dei PDF

Aspose.PDF Cloud è la nostra pluripremiata API REST che offre le capacità di creare, manipolare e rendere file PDF in altri formati supportati, tra cui DOCX, PPTX, XLSX, XPS, SVG, JPEG, ecc. Ora parliamo di Aspose.PDF Cloud SDK per Java che è un wrapper Java per Aspose.PDF Cloud API. Fornisce tutte le funzionalità di Cloud REST API, comprese le capacità di aggiungere filigrana al PDF utilizzando il linguaggio di programmazione Java.

Per utilizzare Java Cloud SDK, il primo passaggio è installare Aspose.PDF Cloud SDK per Java. Cloud SDK è disponibile per il download su Maven | GitHub. Di seguito sono riportati i dettagli su come scaricare e utilizzare Aspose.Pdf.jar nel progetto di build Maven.

Aggiungere le seguenti dipendenze nel file 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>

Aggiungere filigrana di testo in PDF utilizzando REST API

Per utilizzare le API Cloud, devi prima registrare un account su Aspose.Cloud dashboard dove vedrai i dettagli del tuo ID cliente personalizzato e del segreto cliente. Questi sono essenziali durante l’accesso alle API. Di seguito sono riportati i dettagli su come aggiungere una filigrana di testo a un documento PDF esistente utilizzando Java

  • Per prima cosa, devi specificare i dettagli del tuo Client ID e del Client Secret rispetto a due variabili.
  • In secondo luogo, creare un oggetto della classe PdfApi fornendo Client ID e Client Secret come argomenti.
  • In terzo luogo, creiamo un oggetto della classe TextState in cui specifichiamo il nome del font come Arial e la dimensione del font come 14.
  • Ora dobbiamo creare un’istanza della classe TextStamp. Mentre utilizziamo questo oggetto, specificheremo HorizontalAlignment come centro, il valore Text stamp, la dimensione del font e i dettagli del tipo di font sono specificati usando il metodo textState(..) dove l’oggetto TextState creato nel passaggio precedente è passato come argomento. I dettagli del margine e VerticalAlignment sono anche specificati come Center.
  • Per visualizzare TextStamp sullo sfondo, si utilizza il metodo background(..) con argomento true.
  • Inoltre, vengono specificati anche l’opacità, l’angolo di rotazione, il fattore di zoom e il rientro XY del timbro.
  • Ora crea un oggetto della classe List con tipo TextStamp e aggiungi l’oggetto timbro creato sopra a questo elenco.
  • Infine, chiama il metodo postPageTextStamps(..) di PdfAPi e passa il PDF di input, il numero di pagina e l’elenco dei timbri come argomento per avviare il processo di timbro.
// Per esempi completi e codice sorgente, visitare https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Ottieni ClientID e ClientSecret da 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 = "";

// crea un'istanza di PdfApi utilizzando i dettagli di ID client e segreto client
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);

// crea un oggetto di TextState e specifica i dettagli di formattazione del carattere
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.);
        
// crea un oggetto Elenco con tipo TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();

// aggiungi l'istanza di TextStamp all'elenco di TextStamp
stamps.add(stamp);

// chiama il metodo per postTextStamp sulla prima pagina del file PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);
TextStamp aggiunto al PDF

Immagine 1:- Timbro di testo aggiunto al documento PDF.

I file di esempio utilizzati nell’esempio precedente possono essere scaricati dai seguenti link:

Come aggiungere una filigrana immagine in un PDF usando Java

Con meno righe di codice, la filigrana Immagine può essere facilmente aggiunta a un documento PDF. Di seguito sono riportati i passaggi su come aggiungere un’immagine JPEG a un file PDF.

  • Per prima cosa, bisogna creare un oggetto PdfApi passando ClientSecret e ClientID come argomenti.
  • Il passo successivo è creare un oggetto ImageStamp in cui definiamo il file immagine da timbrare, i dettagli del margine e VerticalAlignment. Nel nostro caso, abbiamo selezionato Center value dall’enumerazione VerticalAlignment.
  • Imposta ImageStamp.background(True) in modo che l’immagine appaia dietro il contenuto della pagina. Altrimenti, apparirà sopra il contenuto della pagina.
  • Crea un oggetto Elenco di tipo ImageStamp e aggiungi l’oggetto ImageStamp creato nel secondo passaggio a questa raccolta.
  • Infine, chiamiamo il metodo postPageImageStamps(…) della classe PdfApi, a cui passiamo come argomento il PDF di input, il numero di pagina per la filigrana e l’elenco ImageStamp creato sopra.
  • Il file PDF con filigrana immagine viene salvato sullo stesso archivio cloud. L’anteprima del file risultante è visualizzata di seguito.
// Per esempi completi e codice sorgente, visitare https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

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

// creare un'istanza di PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String file = "PdfWithTable.pdf";
// Immagine sorgente da utilizzare per la filigrana
String image = "Koala.jpg";
// numero di pagina in cui verrà aggiunta la filigrana
int pageNumber = 1;

// crea un'istanza dell'oggetto ImageStamp
ImageStamp stampObject = new ImageStamp()
	.fileName(image)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(214.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
	
	// aggiungere filigrana dietro il contenuto della pagina
	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);

// crea un elenco di oggetti ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();

// Aggiungi ImageStamp all'elenco di ImageStamp
stamps.add(stampObject);

// chiama il metodo API per aggiungere l'immagine della filigrana al PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);
Timbro immagine aggiunto al PDF

Immagine 2:- Timbro immagine aggiunto al documento PDF.

I file di esempio utilizzati nell’esempio precedente possono essere scaricati dal seguente link.

Aggiungi pagina PDF come timbro filigrana

Oltre a Testo e Immagine, la pagina PDF può anche essere aggiunta come filigrana a un documento PDF esistente. Di seguito sono riportati i passaggi per soddisfare questi requisiti.

  • Per prima cosa, crea un oggetto della classe PdfApi passando Client ID e Client Secret come argomenti.
  • In secondo luogo, crea un’istanza della classe PdfPageStamp. Questa classe è usata per specificare il percorso del documento PDF mentre sarà usata per la filigrana.
  • Il metodo PdfPageStamp.pageIndex(..) viene utilizzato per specificare il numero di pagina del file PDF che verrà utilizzato per la filigrana.
  • Tra gli altri metodi, background(..) è importante perché viene utilizzato per impostare una filigrana dietro il contenuto del PDF o per mantenerla sopra il contenuto.
  • Quindi crea un Elenco di tipo PdfPageStamp e aggiungi l’oggetto PdfPageStamp creato sopra alla raccolta Elenco.
  • Infine, chiama il metodo postPagePdfPageStamps(…) della classe PdfApi dove passiamo il file PDF sorgente, l’indice di pagina da filigranare e l’elenco di PdfPageStamp come argomento. L’output risultante viene salvato sullo storage cloud.
// Per esempi completi e codice sorgente, visitare https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

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

// creare istanza PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String sourcePDF = "PdfWithAnnotations.pdf";

// PDF di origine da utilizzare per la filigrana
String stampPDF = "rusdoc.pdf";

// numero di pagina in cui verrà aggiunta la filigrana
int pageNumber = 1;

// crea un'istanza dell'oggetto PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
	// File PDF da utilizzare come filigrana
  	.fileName(stampPDF)
	// specifica l'indice della pagina che vuoi aggiungere come filigrana
	.pageIndex(1)
	.leftMargin(150.)
	.rightMargin(2.)
	
	// abbiamo impostato -ve margine superiore per spostare verso l'alto la filigrana PDF
	.topMargin(-330.)
	.bottomMargin(414.)
	
  	// imposta l'allineamento verticale della filigrana come In alto
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
	
  	// porta la filigrana in primo piano/visibile
	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.)
	
  	// imposta il fattore di zoom su 0,7 in modo che sia compresso anziché apparire al 100%
	.zoom(0.7);

// crea un elenco di oggetti PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
	
// Aggiungi PdfPageStamp all'elenco di ImageStamp
stamps.add(stampObject);
	
// chiama il metodo API per aggiungere PDF come filigrana
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);
File PDF come filigrana

Immagine 3: - Anteprima del file PDF aggiunto come filigrana.

I file di esempio utilizzati nell’esempio sopra possono essere scaricati dai seguenti link

Aggiungi il numero di pagina come filigrana

I dettagli relativi al numero di pagina sono molto importanti dal punto di vista dell’usabilità, in quanto forniscono al lettore un’indicazione chiara sulla lunghezza del documento e sulla pagina che sta leggendo.

  • Dopo aver creato l’istanza PdfApi, creiamo un oggetto della classe PageNumberStamp.
  • utilizzare il metodo value(…) della classe PageNumberStamp per specificare il modello per il timbro PageNumber.
  • Un altro metodo importante è setStartingNumber(..) che indica il conteggio da cui deve iniziare la filigrana del numero di pagina.
  • L’altra parte di codice che include i dettagli sui margini, l’opacità, l’angolo di rotazione, il fattore di ingombro, ecc. sono identici ai frammenti di codice soprastanti.
  • Dobbiamo specificare startPageNumber ed endPageNumber dove verrà posizionata la filigrana del numero di pagina.
  • Infine, chiama postDocumentPageNumberStamps(…) che accetta come argomenti il file PDF di input, l’oggetto PageNumberStamp, le informazioni sulla pagina iniziale e finale e aggiunge la filigrana del numero di pagina nel file sorgente.
// Per esempi completi e codice sorgente, visitare https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
				
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String sourcePDF = "PdfWithTable.pdf";

// crea un'istanza dell'oggetto PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()

	// Formato per la filigrana del numero di pagina
  	.value("Page #")
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	
	// imposta l'allineamento verticale della filigrana come In basso
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
	
	// specificare il numero iniziale per il contatore
	stampObject.setStartingNumber(3);

	// porta la filigrana in primo piano/visibile
	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);

// modulo della pagina iniziale dove mettere la filigrana
int startPageNumber = 2;
	
// indice della pagina verso cui deve essere posizionata la filigrana
int endPageNumber = 3;
	
// chiama il metodo API per aggiungere PDF come filigrana
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);
Timbro del numero di pagina nel PDF

Immagine 4: Anteprima del numero di pagina come filigrana nel PDF.

I file di esempio utilizzati nell’esempio precedente possono essere scaricati dal seguente link:

Suggerimento rapido

Aspose.PDF Cloud SDK per Java è così potente che con un paio di righe di codice puoi convertire i formati JPEG, EPUB, LaTeX, HTML, PS, XSLFo, XPS, SVG, DOCX, PCL nel formato PDF. Per maggiori informazioni, visita la pagina del prodotto.

Conclusione

In questo post del blog, abbiamo appreso i passaggi su come possiamo aggiungere facilmente informazioni di testo, immagine, PDF e numero di pagina a documenti PDF esistenti utilizzando Aspose.PDF Cloud SDK per Java. Si prega di notare che i nostri Cloud SDK sono open source e puoi anche scaricare il loro codice sorgente completo e modificarlo in base alle tue esigenze. Il codice sorgente completo può essere scaricato dal repository GitHub. In caso di domande correlate, non esitare a contattarci tramite forum di supporto gratuiti.