Annotazione PDF

Il contenuto all’interno di una pagina PDF è difficile da modificare, ma la specifica PDF definisce un set completo di oggetti che possono essere aggiunti alle pagine PDF senza modificare il contenuto della pagina. Questi oggetti sono chiamati annotazioni e il loro scopo spazia dal contrassegnare il contenuto della pagina all’implementazione di funzionalità interattive come i moduli.

La maggior parte dei visualizzatori PDF consente la creazione e la modifica di vari tipi di annotazione, ad esempio evidenziazioni di testo, note, linee o forme e, indipendentemente dai tipi di annotazione creati, i visualizzatori PDF conformi alle specifiche PDF dovrebbero anche supportare il rendering per tutti i tipi di annotazione. Tuttavia, quando si ha a che fare con un ampio set di documenti, il processo manuale di aggiunta di annotazioni diventa macchinoso e, pertanto, un’API di programmazione è una soluzione praticabile. Discuteremo ulteriormente l’utilizzo di Aspose.PDF Cloud SDK per Java per aggiungere annotazioni ai documenti PDF.

Installazione dell’SDK

Aspose.PDF Cloud SDK per Java è un’API di programmazione che consente ai programmatori Java di creare, manipolare e trasformare documenti PDF esistenti in altri formati di documenti supportati. Cloud SDK è disponibile per il download su Maven e GitHub. Ora aggiungi i seguenti dettagli nel tuo file pom.xml per scaricare e utilizzare Aspose.Pdf.jar nel tuo progetto di build Maven.

<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>

Per ulteriori informazioni, visitare Come installare gli SDK di Aspose.Cloud.

Inoltre, tieni presente che per garantire la privacy degli utenti e l’integrità dei dati, tutte le nostre API sono accessibili solo a persone autorizzate. Pertanto, devi prima visitare Aspose.Cloud dashboard e se hai un account GitHub o Google, semplicemente Registrati. Altrimenti, clicca sul pulsante Crea un nuovo account e fornisci le informazioni richieste. Ora accedi alla dashboard utilizzando le credenziali ed espandi la sezione Applicazioni dalla dashboard e scorri verso il basso fino alla sezione Credenziali client per vedere i dettagli ID client e Segreto client.

Barrare il testo usando Java

A volte abbiamo la necessità di contrassegnare un determinato contenuto all’interno del documento come obsoleto senza rimuoverlo dal documento. Il testo barrato (detto anche barrato) è rappresentato da parole con una linea orizzontale al centro. Implica che il testo è sbagliato o obsoleto ed è stato recentemente eliminato o contrassegnato come tale. Possiamo impostare le impostazioni delle annotazioni barrate utilizzando la proprietà strikethroughSettings. La proprietà strikethroughSettings viene utilizzata per impostare le proprietà colore, opacità, autore, soggetto, modifiedDate e isLocked delle annotazioni barrate.

// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// crea istanzaPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String sourcePDF = "PdfWithTable.pdf";	        
			        
int pageNumber = 1;
// crea una regione rettangolare per l'annotazione  
Rectangle rect = new Rectangle()
    .LLX(200.)
    .LLY(380.)
    .URX(250.)
    .URY(375.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.));	// Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));

StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        

List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);

AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

Aggiungi annotazione evidenziata

Evidenziare il contenuto all’interno di un PDF è essenziale perché ci consente di richiamare l’attenzione sulle informazioni importanti all’interno del documento. L’evidenziazione è efficace perché prima chiede al lettore di selezionare le parti importanti e poi fornisce un modo efficace per rivedere tali informazioni in seguito. La nostra API Cloud fornisce le capacità per evidenziare il contenuto all’interno dei documenti PDF. Di seguito sono riportati i passaggi per aggiungere annotazioni di evidenziazione in un file PDF.

  • Per prima cosa, crea un’istanza di PdfApi fornendo i dettagli ClientSecret e ClientId.
  • Creiamo un’istanza File per caricare un file PDF dal sistema locale e poi chiamiamo il metodo uploadFile(…) della classe PdfApi per caricare il documento nell’archivio cloud.
  • Ora crea un’istanza della classe Rectangle per specificare l’area rettangolare in cui è possibile aggiungere l’annotazione.
  • Quindi creare un ArrayList di tipo Point per contenere le informazioni relative ai punti su cui disegnare l’HighlightAnnotation.
  • Crea un oggetto della classe HighlightAnnotation e imposta Nome, Regione rettangolare, Oggetto, Titolo, QuadPoints, Data di modifica dell’annotazione.
  • Il passo successivo consiste nel creare un elenco di tipo HighlightAnnotation e aggiungere l’oggetto HighlightAnnotation creato sopra a questo elenco.
  • Infine, chiama il metodo postPageHighlightAnnotations(…) della classe PdfApi e passa il PDF sorgente, il numero di pagina e l’elenco delle annotazioni come argomenti.
Evidenzia l'anteprima dell'annotazione

Immagine 1: Evidenzia l’annotazione nel file PDF.

È possibile scaricare i file di esempio utilizzati nell’esempio precedente dai seguenti link

Come aggiungere annotazioni di riga

Similmente all’aggiunta di annotazioni barrate ed evidenziate, l’API consente anche di aggiungere annotazioni di riga nei documenti PDF. Abbiamo una classe denominata LineAnnotation per soddisfare questo requisito. Di seguito sono riportati ulteriori dettagli su come soddisfare questo requisito.

  • Per prima cosa, crea un’istanza di PdfApi fornendo i dettagli ClientSecret e ClientId.
  • Facoltativamente, creiamo un’istanza File per caricare un file PDF dal sistema locale e quindi chiamiamo il metodo uploadFile(…) della classe PdfApi per caricare il documento sullo storage cloud. Nel caso in cui il file sia già disponibile sullo storage cloud, possiamo utilizzarlo.
  • Le restanti proprietà di inizializzazione degli oggetti sono le stesse menzionate sopra per HighlithAnnotation, tranne per il fatto che dobbiamo creare un oggetto di classe LineAnnotation e impostare il punto iniziale e finale di una linea utilizzando i metodi setStarting(…) e setEnding(…).
// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// crea istanzaPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Carica il file dal sistema locale
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// caricare il file sullo storage cloud
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);

// numero di pagina in cui verrà aggiunta l'annotazione				
int pageNumber = 1;

// crea una regione rettangolare per l'annotazione  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(500.)
    .URX(400.)
    .URY(510.);

// crea un oggetto Elenco di tipo AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Crea oggetto Annotazioni di linea
LineAnnotation annotation = new LineAnnotation();

annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// imposta il punto di partenza della linea
annotation.setStarting(new Point().X(100.).Y(100.));
// imposta il punto finale della linea
annotation.setEnding(new Point().X(20.).Y(680.));

// crea un'istanza di colore per staleblue
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// imposta il colore dell'annotazione
annotation.interiorColor(color);

// imposta la data di modifica dell'annotazione			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Crea un'istanza di Elenco di Annotazioni di riga
List<LineAnnotation> annotations = new ArrayList<>();
// aggiungi l'oggetto LineAnnotation all'elenco delle annotazioni di linea
annotations.add(annotation);

// chiama il metodo API per aggiungere l'annotazione di riga al file PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);

Aggiungere annotazioni circolari in PDF

Le annotazioni circolari sono anche comunemente utilizzate all’interno di documenti PDF e l’API supporta molto bene questo tipo di annotazione. Per aggiungere annotazioni circolari, prova a utilizzare la classe CircleAnnotation. Il codice specificato di seguito può essere utilizzato per soddisfare questo requisito.

// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// crea istanzaPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF di input
String sourcePDF = "PdfWithTable.pdf";	        
			    
// Carica il file dal sistema locale
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);

// caricare il file sullo storage cloud
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// numero di pagina in cui verrà aggiunta l'annotazione				
int pageNumber = 1;

// crea una regione rettangolare per l'annotazione  
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(700.)
    .URX(300.)
    .URY(500.);

// crea un oggetto Elenco di tipo AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// Crea oggetto Evidenzia annotazioni
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");

// crea un'istanza di colore per staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// imposta il colore dell'annotazione
annotation.interiorColor(color);

// imposta la data di modifica dell'annotazione			      
annotation.setModified("05/22/2021 00:00:00.000 AM");
			        
// Crea un'istanza di Elenco di Evidenzia Annotazioni
List<CircleAnnotation> annotations = new ArrayList<>();

// aggiungi l'oggetto CircleAnnotation all'elenco Circle Annotations
annotations.add(annotation);

// chiama il metodo API per aggiungere l'annotazione del cerchio al file PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);
Annotazione del cerchio in PDF

Immagine 2:- Annotazione del cerchio nel file PDF.

Il documento PDF di input e il PDF risultante, come mostrato sopra, possono essere scaricati dai seguenti link:

Suggerimento rapido

Utilizza la nostra app di annotazione PDF online gratuita per rimuovere tutte le annotazioni dal tuo PDF con un clic.

Conclusione

In questo blog, abbiamo discusso vari tipi di Annotazioni attualmente supportati da Aspose.PDF Cloud SDK per Java. Oltre alle Annotazioni, l’API supporta una pletora di altre interessanti funzionalità correlate al formato PDF. Per maggiori informazioni, ti consigliamo di esplorare ulteriormente la Guida per sviluppatori.

Si prega di notare che ci impegniamo sempre a servire i clienti nel miglior modo possibile e a riconoscere il loro feedback e i loro suggerimenti. Quindi, nel caso in cui si riscontrino problemi durante l’utilizzo dell’API o si abbiano domande correlate, non esitate a contattarci tramite il nostro Forum di supporto gratuito.

Articoli correlati

Consigliamo vivamente di visitare i seguenti link per saperne di più: