<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>pdf shape manipulation on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/it/tag/pdf-shape-manipulation/</link>
    <description>Recent content in pdf shape manipulation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>it</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/it/tag/pdf-shape-manipulation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Aggiungi forme al PDF in Java</title>
      <link>https://blog-qa.conholdate.com/it/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/it/total/add-shapes-to-pdf-in-java/</guid>
      <description>Scopri come aggiungere forme a PDF in Java usando Conholdate.Total for Java. Segui questa guida passo‑passo con codice, configurazione e migliori pratiche per la grafica vettoriale.</description>
      <content:encoded><![CDATA[<p>Aggiungere grafica vettoriale ai file <a href="https://docs.fileformat.com/pdf">PDF</a> è una necessità comune per generare report, fatture e documenti interattivi. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> è 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.</p>
<h2 id="passaggi-per-aggiungere-forme-a-pdf-in-java">Passaggi per aggiungere forme a PDF in Java</h2>
<ol>
<li><strong>Aggiungere repository Maven e dipendenza</strong> – Includi il repository Maven Conholdate e la dipendenza <code>conholdate-total</code> nel tuo <code>pom.xml</code>. Questo rende disponibili le classi SDK come <code>PdfDocument</code> e <code>ShapeFactory</code>.
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;repositories&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span></code></pre></div></li>
</ol>
<!-- raw HTML omitted -->
<ol start="2">
<li>
<p><strong>Carica il documento PDF</strong> - Crea un&rsquo;istanza di <code>PdfDocument</code> e apri il file PDF di destinazione. La classe è documentata nella <a href="https://reference.conholdate.com/java/">riferimento API</a>.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>PdfDocument pdf <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> PdfDocument<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">open</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.pdf&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Crea oggetti Shape</strong> - Usa <code>ShapeFactory</code> per istanziare rettangoli, ellissi o linee. Imposta posizione, dimensione e attributi visivi.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#75715e">// Rectangle
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>Shape rect <span style="color:#f92672">=</span> ShapeFactory<span style="color:#f92672">.</span><span style="color:#a6e22e">createRectangle</span><span style="color:#f92672">(</span>100<span style="color:#f92672">,</span> 150<span style="color:#f92672">,</span> 200<span style="color:#f92672">,</span> 100<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setFillColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">BLUE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setStrokeColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">BLACK</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setLineWidth</span><span style="color:#f92672">(</span>2<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
</ol>
<p>// Ellipse
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<pre tabindex="0"><code>// Line
   Shape line = ShapeFactory.createLine(100, 300, 500, 300);
   line.setStrokeColor(Color.RED);
   line.setLineWidth(3);
</code></pre><ol start="4">
<li><strong>Aggiungere forme a una pagina</strong> - Recupera la pagina desiderata dal documento e aggiungi ogni forma alla sua collezione grafica.</li>
</ol>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Page page <span style="color:#f92672">=</span> pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">getPages</span><span style="color:#f92672">().</span><span style="color:#a6e22e">get_Item</span><span style="color:#f92672">(</span>0<span style="color:#f92672">);</span> <span style="color:#75715e">// first page
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>rect<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>ellipse<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>line<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="5">
<li><strong>Salva il PDF aggiornato</strong> - Dopo che tutte le forme sono state aggiunte, salva il documento in un nuovo file.
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;output.pdf&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">close</span><span style="color:#f92672">();</span>
</span></span></code></pre></div></li>
</ol>
<h2 id="aggiungere-forme-a-pdf-in-java---esempio-di-codice-completo">Aggiungere forme a PDF in Java - Esempio di codice completo</h2>
<p>Il seguente esempio riunisce tutti i passaggi in un unico programma pronto per l&rsquo;esecuzione.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.conholdate.total.pdf.*<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.conholdate.total.pdf.shapes.*<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.awt.Color<span style="color:#f92672">;</span>
</span></span></code></pre></div><p>public class AddShapesDemo {
public static void main(String[] args) throws Exception {
// Initialize PDF document
PdfDocument pdf = new PdfDocument();
pdf.open(&ldquo;input.pdf&rdquo;);</p>
<p>// Crea rettangolo
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);</p>
<p>// Crea ellisse
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<p>// Crea linea
Shape line = ShapeFactory.createLine(100, 300, 500, 300);
line.setStrokeColor(Color.RED);
line.setLineWidth(3);</p>
<p>// Aggiungi forme alla prima pagina
Page page = pdf.getPages().get_Item(0);
page.getGraphics().addShape(rectangle);
page.getGraphics().addShape(ellipse);
page.getGraphics().addShape(line);</p>
<p>// Save the result
pdf.save(&ldquo;output.pdf&rdquo;);
pdf.close();
}
}</p>
<pre tabindex="0"><code>&lt;!--[COMPLETE_CODE_SNIPPET_END]--&gt;

&gt; **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&#39;ultima versione dal sito ufficiale e aggiungi la dipendenza Maven mostrata in precedenza. L&#39;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&#39;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&#39;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&#39;aspetto:** Imposta i colori di riempimento, i colori di contorno, la larghezza delle linee, l&#39;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&#39;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:

&lt;!--[CODE_SNIPPET_START]--&gt;
```java
ellipse.setOpacity(0.7f);
ellipse.setBlendMode(BlendMode.MULTIPLY);
ellipse.setRotation(45);
</code></pre><!-- raw HTML omitted -->
<h2 id="considerazioni-sulle-prestazioni-quando-si-aggiungono-forme-ai-pdf">Considerazioni sulle prestazioni quando si aggiungono forme ai PDF</h2>
<p>Aggiungere molti oggetti vettoriali può aumentare il tempo di elaborazione e l&rsquo;utilizzo della memoria. Segui queste linee guida:</p>
<ul>
<li><strong>Batch Drawing:</strong> Raggruppa le forme correlate in un unico contenitore grafico prima di aggiungerle alla pagina.</li>
<li><strong>Reuse Objects:</strong> Se hai bisogno di forme identiche su più pagine, clona una forma esistente invece di creare nuove istanze.</li>
<li><strong>Avoid Over‑Scaling:</strong> Definisci le forme nella dimensione finale di visualizzazione per evitare costose conversioni raster.</li>
<li><strong>Dispose Resources:</strong> Chiudi il <code>PdfDocument</code> prontamente per liberare le risorse native.</li>
</ul>
<h2 id="conclusione">Conclusione</h2>
<p><a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> 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&rsquo;uso in produzione; è disponibile una licenza temporanea per la valutazione, e i dettagli completi dei prezzi sono elencati nella <a href="https://purchase.conholdate.com/pricing/total/family/">pagina dei prezzi</a>.</p>
<h2 id="faq">FAQ</h2>
<p><strong>Come posso aggiungere un font personalizzato alle forme in un PDF?</strong><br>
È possibile incorporare un font TrueType usando <code>pdf.getFonts().addFont(&quot;MyFont.ttf&quot;)</code> e quindi assegnarlo a una forma tramite <code>setFont(myFont)</code>. L&rsquo;SDK garantisce che il font sia incorporato nel PDF finale.</p>
<p><strong>È possibile inserire forme in un PDF esistente senza perdere il contenuto esistente?</strong><br>
Sì. L&rsquo;apertura del PDF con <code>PdfDocument.open()</code> preserva tutte le pagine e gli oggetti esistenti. L&rsquo;aggiunta di forme alla raccolta grafica di una pagina aumenta solo la pagina; non sovrascrive il contenuto esistente.</p>
<p><strong>In quali formati di file posso esportare dopo aver aggiunto forme?</strong><br>
Conholdate.Total for Java supporta il salvataggio in PDF, PDF/A, PDF/X e anche in formati immagine come <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a> e BMP. Utilizza <code>pdf.save(&quot;output.pdf&quot;)</code> o <code>pdf.save(&quot;output.png&quot;, ImageSaveOptions.Png)</code> secondo necessità.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
