<?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>java pdf shapes on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/id/tag/java-pdf-shapes/</link>
    <description>Recent content in java pdf shapes on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>id</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/id/tag/java-pdf-shapes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tambahkan Bentuk ke PDF di Java</title>
      <link>https://blog-qa.conholdate.com/id/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/id/total/add-shapes-to-pdf-in-java/</guid>
      <description>Pelajari cara menambahkan bentuk ke PDF dalam Java menggunakan Conholdate.Total for Java. Ikuti panduan langkah demi langkah ini dengan kode, pengaturan, dan praktik terbaik untuk grafik vektor.</description>
      <content:encoded><![CDATA[<p>Menambahkan grafik vektor ke file <a href="https://docs.fileformat.com/pdf">PDF</a> adalah kebutuhan umum untuk menghasilkan laporan, faktur, dan dokumen interaktif. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> adalah SDK yang kuat yang menyederhanakan manipulasi PDF di sisi server. Dalam panduan ini Anda akan belajar cara menyisipkan persegi panjang, elips, dan garis ke dalam PDF, mengonfigurasi penampilannya, dan menangani pertimbangan kinerja, semuanya dengan contoh kode Java yang jelas.</p>
<h2 id="langkah-langkah-menambahkan-bentuk-ke-pdf-di-java">Langkah-langkah Menambahkan Bentuk ke PDF di Java</h2>
<ol>
<li><strong>Tambahkan Repository Maven dan Dependensi</strong> - Sertakan repository Maven Conholdate dan dependensi <code>conholdate-total</code> di file <code>pom.xml</code> Anda. Ini membuat kelas SDK seperti <code>PdfDocument</code> dan <code>ShapeFactory</code> tersedia.
<!-- 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><strong>Muat Dokumen PDF</strong> - Buat sebuah instance dari <code>PdfDocument</code> dan buka file PDF target. Kelas ini didokumentasikan dalam <a href="https://reference.conholdate.com/java/">referensi API</a>.</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>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><ol start="3">
<li><strong>Buat Objek Bentuk</strong> - Gunakan <code>ShapeFactory</code> untuk menginstansiasi persegi panjang, elips, atau garis. Atur posisi, ukuran, dan atribut visual.
<!-- 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>
<p><strong>Tambahkan Bentuk ke Halaman</strong> - Dapatkan halaman yang diinginkan dari dokumen dan tambahkan setiap bentuk ke koleksi grafiknya.</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>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></li>
<li>
<p><strong>Simpan PDF yang Diperbarui</strong> - Setelah semua bentuk ditambahkan, simpan dokumen ke file baru.</p>
</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>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><h2 id="menambahkan-bentuk-ke-pdf-dalam-java---contoh-kode-lengkap">Menambahkan Bentuk ke PDF dalam Java - Contoh Kode Lengkap</h2>
<p>Contoh berikut menggabungkan semua langkah menjadi satu program yang siap dijalankan.</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>// Create rectangle
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);</p>
<p>// Buat elips
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>// Buat garis
Shape line = ShapeFactory.createLine(100, 300, 500, 300);
line.setStrokeColor(Color.RED);
line.setLineWidth(3);
</code></pre><pre tabindex="0"><code>// Tambahkan bentuk ke halaman pertama
Page page = pdf.getPages().get_Item(0);
page.getGraphics().addShape(rectangle);
page.getGraphics().addShape(ellipse);
page.getGraphics().addShape(line);
</code></pre><pre tabindex="0"><code>// Save the result
        pdf.save(&#34;output.pdf&#34;);
        pdf.close();
    }
}
</code></pre><!-- raw HTML omitted -->
<blockquote>
<p><strong>Catatan:</strong> Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui jalur file (<code>input.pdf</code>, <code>output.pdf</code>) agar sesuai dengan lokasi file Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan lakukan pengujian secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke <a href="https://docs.conholdate.com/java/">dokumentasi resmi</a> atau hubungi <a href="https://forum.conholdate.com/c/total/5">tim dukungan</a> untuk bantuan.</p>
</blockquote>
<h2 id="installation-and-setup-in-java">Installation and Setup in Java</h2>
<p>Untuk mulai menggunakan Conholdate.Total for Java, unduh rilis terbaru dari situs resmi dan tambahkan dependensi Maven yang ditunjukkan sebelumnya. SDK berfungsi pada runtime Java 8+ apa pun dan tidak memerlukan pustaka native tambahan.</p>
<ul>
<li><strong>URL Unduhan:</strong> <a href="https://releases.conholdate.com/total/java/">Conholdate.Total for Java Release</a></li>
<li><strong>Dokumentasi:</strong> Instruksi penggunaan detail tersedia di <a href="https://docs.conholdate.com/java/">dokumentasi resmi</a>.</li>
<li><strong>Lisensi:</strong> Dapatkan lisensi sementara dari <a href="https://purchase.conholdate.com/temporary-license/">halaman lisensi sementara</a> atau lihat harga lengkap pada <a href="https://purchase.conholdate.com/pricing/total/family/">halaman harga</a>.</li>
</ul>
<h2 id="fitur-utama-dan-ikhtisar">Fitur Utama dan Ikhtisar</h2>
<h3 id="tambahkan-bentuk-ke-pdf-di-java-dengan-conholdatetotal">Tambahkan Bentuk ke PDF di Java dengan Conholdate.Total</h3>
<p>Conholdate.Total for Java menyediakan API terpadu untuk membuat dan mengedit konten PDF. Fungsionalitas shape‑drawing bekerja dengan grafik vektor, memastikan elemen yang ditambahkan tetap tajam pada tingkat zoom apa pun. Anda dapat menggambar primitif dasar (persegi panjang, elips, garis) serta jalur kompleks.</p>
<h3 id="fitur-conholdatetotal-yang-penting-untuk-tugas-ini">Fitur Conholdate.Total yang Penting untuk Tugas Ini</h3>
<ul>
<li><strong>Kompatibilitas lintas‑platform:</strong> Berfungsi pada server Windows, Linux, dan macOS.</li>
<li><strong>Rendering berkinerja tinggi:</strong> Bentuk-bentuk dirender menggunakan mesin yang sama yang menghasilkan konten PDF asli, menghindari rasterisasi.</li>
<li><strong>Kontrol penuh atas tampilan:</strong> Atur warna isi, warna garis, lebar garis, opasitas, dan mode <a href="https://docs.fileformat.com/3d/blend/">blend</a>.</li>
<li><strong>Grafik berlapis:</strong> Tambahkan bentuk ke lapisan atau grup tertentu untuk memudahkan manipulasi selanjutnya.</li>
</ul>
<h2 id="mengonfigurasi-properti-bentuk-untuk-rendering-optimal">Mengonfigurasi Properti Bentuk untuk Rendering Optimal</h2>
<p>Saat menambahkan bentuk, pertimbangkan properti berikut untuk mencapai hasil visual yang diinginkan:</p>
<ul>
<li><strong>Posisi dan Ukuran:</strong> Gunakan koordinat absolut (poin) atau persentase relatif terhadap ukuran halaman.</li>
<li><strong>Warna:</strong> SDK menerima objek <code>java.awt.Color</code>. Untuk transparansi, gunakan <code>new Color(r, g, b, alpha)</code>.</li>
<li><strong>Lebar Garis:</strong> Diukur dalam poin; nilai <code>1</code> sama dengan 1/72 inci.</li>
<li><strong>Opasitas dan Mode Campuran:</strong> Sesuaikan dengan <code>setOpacity(float)</code> dan <code>setBlendMode(BlendMode)</code>.</li>
<li><strong>Rotasi dan Skew:</strong> Terapkan transformasi melalui <code>setRotation(double)</code> atau <code>setSkew(double, double)</code> untuk tata letak lanjutan.</li>
</ul>
<p>Contoh mengatur properti lanjutan:</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>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">7f</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setBlendMode</span><span style="color:#f92672">(</span>BlendMode<span style="color:#f92672">.</span><span style="color:#a6e22e">MULTIPLY</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotation</span><span style="color:#f92672">(</span>45<span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<h2 id="pertimbangan-kinerja-saat-menambahkan-bentuk-ke-pdf">Pertimbangan Kinerja Saat Menambahkan Bentuk ke PDF</h2>
<p>Menambahkan banyak objek vektor dapat meningkatkan waktu pemrosesan dan penggunaan memori. Ikuti pedoman berikut:</p>
<ul>
<li><strong>Batch Drawing:</strong> Kelompokkan bentuk terkait ke dalam satu kontainer grafis sebelum menambahkannya ke halaman.</li>
<li><strong>Reuse Objects:</strong> Jika Anda memerlukan bentuk identik pada beberapa halaman, kloning bentuk yang ada alih-alih membuat instance baru.</li>
<li><strong>Avoid Over‑Scaling:</strong> Tentukan bentuk pada ukuran tampilan akhir untuk mencegah konversi raster yang mahal.</li>
<li><strong>Dispose Resources:</strong> Tutup <code>PdfDocument</code> dengan cepat untuk membebaskan sumber daya native.</li>
</ul>
<h2 id="kesimpulan">Kesimpulan</h2>
<p><a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> memberikan pengembang Java cara yang sederhana untuk menambahkan bentuk ke dokumen PDF, memungkinkan pembuatan laporan dan faktur yang kaya serta interaktif. Dengan mengikuti langkah‑langkah, tip konfigurasi, dan panduan kinerja dalam panduan ini, Anda dapat mengintegrasikan grafik vektor ke dalam alur kerja PDF Anda dengan percaya diri. Ingatlah untuk mengamankan lisensi yang tepat untuk penggunaan produksi; lisensi sementara tersedia untuk evaluasi, dan detail harga lengkap tercantum di <a href="https://purchase.conholdate.com/pricing/total/family/">halaman harga</a>.</p>
<h2 id="faq">FAQ</h2>
<p><strong>Bagaimana cara menambahkan font khusus ke bentuk dalam PDF?</strong><br>
Anda dapat menyematkan font TrueType menggunakan <code>pdf.getFonts().addFont(&quot;MyFont.ttf&quot;)</code> dan kemudian menetapkannya ke sebuah shape melalui <code>setFont(myFont)</code>. SDK memastikan font tersebut disematkan dalam PDF akhir.</p>
<p><strong>Apakah memungkinkan untuk menyisipkan bentuk ke dalam PDF yang ada tanpa kehilangan konten yang sudah ada?</strong><br>
Ya. Membuka PDF dengan <code>PdfDocument.open()</code> mempertahankan semua halaman dan objek yang ada. Menambahkan bentuk ke koleksi grafik halaman hanya menambah halaman; tidak menimpa konten yang sudah ada.</p>
<p><strong>Format file apa yang dapat saya ekspor setelah menambahkan bentuk?</strong><br>
Conholdate.Total for Java mendukung penyimpanan ke PDF, PDF/A, PDF/X, serta ke format gambar seperti <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, dan BMP. Gunakan <code>pdf.save(&quot;output.pdf&quot;)</code> atau <code>pdf.save(&quot;output.png&quot;, ImageSaveOptions.Png)</code> sesuai kebutuhan.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
