Aggiungere grafica vettoriale ai file PDF è una necessità comune per generare report, fatture e documenti interattivi. Conholdate.Total for Java è un SDK potente che semplifica la manipolazione dei PDF lato server. In questa guida imparerai come inserire rettangoli, ellissi e linee in un PDF, configurare il loro aspetto e gestire le considerazioni sulle prestazioni, il tutto con chiari esempi di codice Java.

Passaggi per aggiungere forme a PDF in Java

  1. Aggiungere repository Maven e dipendenza – Includi il repository Maven Conholdate e la dipendenza conholdate-total nel tuo pom.xml. Questo rende disponibili le classi SDK come PdfDocument e ShapeFactory.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Carica il documento PDF - Crea un’istanza di PdfDocument e apri il file PDF di destinazione. La classe è documentata nella riferimento API.

    PdfDocument pdf = new PdfDocument();
    pdf.open("input.pdf");
    
  2. Crea oggetti Shape - Usa ShapeFactory per istanziare rettangoli, ellissi o linee. Imposta posizione, dimensione e attributi visivi.

    // Rectangle
    Shape rect = ShapeFactory.createRectangle(100, 150, 200, 100);
    rect.setFillColor(Color.BLUE);
    rect.setStrokeColor(Color.BLACK);
    rect.setLineWidth(2);
    

// Ellipse Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);

// Line
   Shape line = ShapeFactory.createLine(100, 300, 500, 300);
   line.setStrokeColor(Color.RED);
   line.setLineWidth(3);
  1. Aggiungere forme a una pagina - Recupera la pagina desiderata dal documento e aggiungi ogni forma alla sua collezione grafica.
Page page = pdf.getPages().get_Item(0); // first page
page.getGraphics().addShape(rect);
page.getGraphics().addShape(ellipse);
page.getGraphics().addShape(line);
  1. Salva il PDF aggiornato - Dopo che tutte le forme sono state aggiunte, salva il documento in un nuovo file.
    pdf.save("output.pdf");
    pdf.close();
    

Aggiungere forme a PDF in Java - Esempio di codice completo

Il seguente esempio riunisce tutti i passaggi in un unico programma pronto per l’esecuzione.

import com.conholdate.total.pdf.*;
import com.conholdate.total.pdf.shapes.*;
import java.awt.Color;

public class AddShapesDemo { public static void main(String[] args) throws Exception { // Initialize PDF document PdfDocument pdf = new PdfDocument(); pdf.open(“input.pdf”);

// Crea rettangolo Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100); rectangle.setFillColor(Color.BLUE); rectangle.setStrokeColor(Color.BLACK); rectangle.setLineWidth(2);

// Crea ellisse Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);

// Crea linea Shape line = ShapeFactory.createLine(100, 300, 500, 300); line.setStrokeColor(Color.RED); line.setLineWidth(3);

// Aggiungi forme alla prima pagina Page page = pdf.getPages().get_Item(0); page.getGraphics().addShape(rectangle); page.getGraphics().addShape(ellipse); page.getGraphics().addShape(line);

// Save the result pdf.save(“output.pdf”); pdf.close(); } }

<!--[COMPLETE_CODE_SNIPPET_END]-->

> **Nota:** Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare i percorsi dei file (`input.pdf`, `output.pdf`) per corrispondere alle tue effettive posizioni dei file, verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la [documentazione ufficiale](https://docs.conholdate.com/java/) o contatta il [team di supporto](https://forum.conholdate.com/c/total/5) per assistenza.

## Installazione e configurazione in Java
Per iniziare a utilizzare Conholdate.Total for Java, scarica l'ultima versione dal sito ufficiale e aggiungi la dipendenza Maven mostrata in precedenza. L'SDK funziona su qualsiasi runtime Java 8+ e non richiede librerie native aggiuntive.

- **URL di download:** [Conholdate.Total for Java Release](https://releases.conholdate.com/total/java/)  
- **Documentazione:** Istruzioni dettagliate sull'uso sono disponibili nella [documentazione ufficiale](https://docs.conholdate.com/java/).  
- **Licenza:** Ottieni una licenza temporanea dalla [pagina della licenza temporanea](https://purchase.conholdate.com/temporary-license/) o visualizza i prezzi completi nella [pagina dei prezzi](https://purchase.conholdate.com/pricing/total/family/).

## Caratteristiche principali e panoramica
### Aggiungere forme a PDF in Java con Conholdate.Total
Conholdate.Total for Java fornisce un'API unificata per creare e modificare contenuti PDF. La funzionalità di disegno delle forme lavora con grafica vettoriale, garantendo che gli elementi aggiunti rimangano nitidi a qualsiasi livello di zoom. È possibile disegnare primitive di base (rettangolo, ellisse, linea) così come percorsi complessi.

### Caratteristiche di Conholdate.Total importanti per questo compito
- **Compatibilità cross‑platform:** Funziona su server Windows, Linux e macOS.  
- **Rendering ad alte prestazioni:** Le forme vengono renderizzate usando lo stesso motore che genera contenuti PDF nativi, evitando la rasterizzazione.  
- **Controllo completo sull'aspetto:** Imposta i colori di riempimento, i colori di contorno, la larghezza delle linee, l'opacità e le modalità di [blend](https://docs.fileformat.com/3d/blend/).  
- **Grafica a livelli:** Aggiungi forme a livelli o gruppi specifici per una più facile manipolazione successiva.

## Configurazione delle proprietà delle forme per una resa ottimale
Quando si aggiungono forme, considerare le seguenti proprietà per ottenere il risultato visivo desiderato:

- **Posizione e Dimensione:** Utilizzare coordinate assolute (punti) o percentuali relative alla dimensione della pagina.  
- **Colori:** L'SDK accetta oggetti `java.awt.Color`. Per la trasparenza, utilizzare `new Color(r, g, b, alpha)`.  
- **Spessore della linea:** Misurato in punti; un valore di `1` corrisponde a 1/72 di pollice.  
- **Opacità e Modalità di fusione:** Regolare con `setOpacity(float)` e `setBlendMode(BlendMode)`.  
- **Rotazione e Inclinazione:** Applicare trasformazioni tramite `setRotation(double)` o `setSkew(double, double)` per layout avanzati.

Esempio di impostazione delle proprietà avanzate:

<!--[CODE_SNIPPET_START]-->
```java
ellipse.setOpacity(0.7f);
ellipse.setBlendMode(BlendMode.MULTIPLY);
ellipse.setRotation(45);

Considerazioni sulle prestazioni quando si aggiungono forme ai PDF

Aggiungere molti oggetti vettoriali può aumentare il tempo di elaborazione e l’utilizzo della memoria. Segui queste linee guida:

  • Batch Drawing: Raggruppa le forme correlate in un unico contenitore grafico prima di aggiungerle alla pagina.
  • Reuse Objects: Se hai bisogno di forme identiche su più pagine, clona una forma esistente invece di creare nuove istanze.
  • Avoid Over‑Scaling: Definisci le forme nella dimensione finale di visualizzazione per evitare costose conversioni raster.
  • Dispose Resources: Chiudi il PdfDocument prontamente per liberare le risorse native.

Conclusione

Conholdate.Total for Java offre agli sviluppatori Java un modo semplice per aggiungere forme ai documenti PDF, consentendo la creazione di report e fatture ricchi e interattivi. Seguendo i passaggi, i suggerimenti di configurazione e le linee guida sulle prestazioni in questa guida, è possibile integrare la grafica vettoriale nel flusso di lavoro PDF con fiducia. Ricorda di ottenere una licenza adeguata per l’uso in produzione; è disponibile una licenza temporanea per la valutazione, e i dettagli completi dei prezzi sono elencati nella pagina dei prezzi.

FAQ

Come posso aggiungere un font personalizzato alle forme in un PDF?
È possibile incorporare un font TrueType usando pdf.getFonts().addFont("MyFont.ttf") e quindi assegnarlo a una forma tramite setFont(myFont). L’SDK garantisce che il font sia incorporato nel PDF finale.

È possibile inserire forme in un PDF esistente senza perdere il contenuto esistente?
Sì. L’apertura del PDF con PdfDocument.open() preserva tutte le pagine e gli oggetti esistenti. L’aggiunta di forme alla raccolta grafica di una pagina aumenta solo la pagina; non sovrascrive il contenuto esistente.

In quali formati di file posso esportare dopo aver aggiunto forme?
Conholdate.Total for Java supporta il salvataggio in PDF, PDF/A, PDF/X e anche in formati immagine come PNG, JPEG e BMP. Utilizza pdf.save("output.pdf") o pdf.save("output.png", ImageSaveOptions.Png) secondo necessità.