<?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/th/tag/java-pdf-shapes/</link>
    <description>Recent content in java pdf shapes on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>th</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/th/tag/java-pdf-shapes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>เพิ่มรูปทรงลงใน PDF ด้วย Java</title>
      <link>https://blog-qa.conholdate.com/th/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/th/total/add-shapes-to-pdf-in-java/</guid>
      <description>เรียนรู้วิธีเพิ่มรูปทรงลงใน PDF ด้วย Java โดยใช้ Conholdate.Total for Java. ทำตามคู่มือขั้นตอนต่อขั้นตอนนี้พร้อมโค้ด การตั้งค่า และแนวปฏิบัติที่ดีที่สุดสำหรับกราฟิกเวกเตอร์.</description>
      <content:encoded><![CDATA[<p>การเพิ่มกราฟิกเวกเตอร์ลงในไฟล์ <a href="https://docs.fileformat.com/pdf">PDF</a> เป็นความต้องการทั่วไปสำหรับการสร้างรายงาน ใบแจ้งหนี้ และเอกสารเชิงโต้ตอบ <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> เป็น SDK ที่มีประสิทธิภาพซึ่งทำให้การจัดการ PDF บนเซิร์ฟเวอร์เป็นเรื่องง่าย ในคู่มือนี้คุณจะได้เรียนรู้วิธีแทรกสี่เหลี่ยม, รูปวงรี และเส้นลงใน PDF, กำหนดลักษณะการแสดงผลของพวกมัน, และจัดการข้อพิจารณาด้านประสิทธิภาพ ทั้งหมดนี้พร้อมตัวอย่างโค้ด Java ที่ชัดเจน</p>
<h2 id="ขนตอนการเพมรปรางลงใน-pdf-ดวย-java">ขั้นตอนการเพิ่มรูปร่างลงใน PDF ด้วย Java</h2>
<ol>
<li><strong>เพิ่ม Maven Repository และ Dependency</strong> - รวม Conholdate Maven repository และ dependency <code>conholdate-total</code> ลงในไฟล์ <code>pom.xml</code> ของคุณ ซึ่งทำให้คลาส SDK เช่น <code>PdfDocument</code> และ <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><strong>โหลดเอกสาร PDF</strong> - สร้างอินสแตนซ์ของ <code>PdfDocument</code> และเปิดไฟล์ PDF เป้าหมาย คลาสนี้ได้รับการอธิบายไว้ใน <a href="https://reference.conholdate.com/java/">API reference</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>Create Shape Objects</strong> - ใช้ <code>ShapeFactory</code> เพื่อสร้างสี่เหลี่ยม, รูปวงรี หรือเส้น. ตั้งค่าตำแหน่ง, ขนาด, และคุณลักษณะการแสดงผล.</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><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><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>เพิ่มรูปทรงลงในหน้า</strong> - ดึงหน้าที่ต้องการจากเอกสารและเพิ่มแต่ละรูปทรงลงในคอลเลกชันกราฟิกของมัน.</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>บันทึก PDF ที่อัปเดต</strong> - หลังจากเพิ่มรูปทรงทั้งหมดแล้ว ให้บันทึกเอกสารเป็นไฟล์ใหม่.</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>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="การเพมรปรางลงใน-pdf-ดวย-java---ตวอยางโคดเตม">การเพิ่มรูปร่างลงใน PDF ด้วย Java - ตัวอย่างโค้ดเต็ม</h2>
<p>ตัวอย่างต่อไปนี้รวมขั้นตอนทั้งหมดเข้าด้วยกันเป็นโปรแกรมเดียวที่พร้อมใช้งาน</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>// สร้างวงรี
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<p>// สร้างเส้น
Shape line = ShapeFactory.createLine(100, 300, 500, 300);
line.setStrokeColor(Color.RED);
line.setLineWidth(3);</p>
<pre tabindex="0"><code>// เพิ่มรูปทรงลงในหน้าที่หนึ่ง
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>// บันทึกผลลัพธ์
        pdf.save(&#34;output.pdf&#34;);
        pdf.close();
    }
}
</code></pre><!-- raw HTML omitted -->
<blockquote>
<p><strong>หมายเหตุ:</strong> ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์ (<code>input.pdf</code>, <code>output.pdf</code>) ให้ตรงกับตำแหน่งไฟล์จริงของคุณ ตรวจสอบว่าขึ้นตอนการติดตั้ง dependencies ที่จำเป็นทั้งหมดเสร็จสมบูรณ์แล้ว และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ <a href="https://docs.conholdate.com/java/">เอกสารอย่างเป็นทางการ</a> หรือ ติดต่อทีม <a href="https://forum.conholdate.com/c/total/5">สนับสนุน</a> เพื่อขอความช่วยเหลือ</p>
</blockquote>
<h2 id="การตดตงและตงคาใน-java">การติดตั้งและตั้งค่าใน Java</h2>
<p>เพื่อเริ่มใช้ Conholdate.Total for Java ให้ดาวน์โหลดรุ่นล่าสุดจากเว็บไซต์ทางการและเพิ่มการพึ่งพา Maven ที่แสดงไว้ก่อนหน้านี้ SDK ทำงานบน runtime ของ Java 8+ ใดก็ได้และไม่ต้องการไลบรารีเนทีฟเพิ่มเติม</p>
<ul>
<li><strong>URL ดาวน์โหลด:</strong> <a href="https://releases.conholdate.com/total/java/">Conholdate.Total for Java Release</a></li>
<li><strong>เอกสาร:</strong> คำแนะนำการใช้งานโดยละเอียดมีให้ใน <a href="https://docs.conholdate.com/java/">เอกสารอย่างเป็นทางการ</a>.</li>
<li><strong>ใบอนุญาต:</strong> รับใบอนุญาตชั่วคราวจาก <a href="https://purchase.conholdate.com/temporary-license/">หน้าการรับใบอนุญาตชั่วคราว</a> หรือดูราคาครบถ้วนใน <a href="https://purchase.conholdate.com/pricing/total/family/">หน้าการกำหนดราคา</a>.</li>
</ul>
<h2 id="คณลกษณะหลกและภาพรวม">คุณลักษณะหลักและภาพรวม</h2>
<h3 id="เพมรปรางลงใน-pdf-ดวย-java-พรอม-conholdatetotal">เพิ่มรูปร่างลงใน PDF ด้วย Java พร้อม Conholdate.Total</h3>
<p>Conholdate.Total for Java ให้ API ที่เป็นเอกภาพสำหรับการสร้างและแก้ไขเนื้อหา PDF ฟังก์ชันการวาดรูปร่างทำงานกับกราฟิกเวกเตอร์ ทำให้ส่วนที่เพิ่มเข้ามายังคมชัดเจนที่ระดับการซูมใด ๆ คุณสามารถวาด primitive พื้นฐาน (rectangle, ellipse, line) รวมถึงเส้นทางที่ซับซ้อนได้</p>
<h3 id="conholdatetotal-features-that-matter-for-this-task">Conholdate.Total Features That Matter For This Task</h3>
<ul>
<li><strong>Cross‑platform compatibility:</strong> ทำงานบนเซิร์ฟเวอร์ Windows, Linux และ macOS.</li>
<li><strong>High‑performance rendering:</strong> รูปทรงถูกเรนเดอร์โดยใช้เอนจินเดียวกันที่สร้างเนื้อหา PDF แบบเนทีฟ, หลีกเลี่ยงการแรสเตอร์ไลเซชัน.</li>
<li><strong>Full control over appearance:</strong> ตั้งค่าสีเติม, สีเส้น, ความกว้างของเส้น, ความทึบแสง, และโหมด <a href="https://docs.fileformat.com/3d/blend/">blend</a>.</li>
<li><strong>Layered graphics:</strong> เพิ่มรูปทรงลงในเลเยอร์หรือกลุ่มเฉพาะเพื่อการจัดการในภายหลังที่ง่ายขึ้น.</li>
</ul>
<h2 id="กำหนดคาคณสมบตของรปทรงเพอการเรนเดอรทเหมาะสม">กำหนดค่าคุณสมบัติของรูปทรงเพื่อการเรนเดอร์ที่เหมาะสม</h2>
<p>เมื่อเพิ่มรูปทรง ให้พิจารณาคุณสมบัติดังต่อไปนี้เพื่อให้ได้ผลลัพธ์ภาพที่ต้องการ:</p>
<ul>
<li><strong>ตำแหน่งและขนาด:</strong> ใช้พิกัดแบบสัมบูรณ์ (จุด) หรือเปอร์เซ็นต์สัมพันธ์กับขนาดหน้า.</li>
<li><strong>สี:</strong> SDK ยอมรับอ็อบเจกต์ <code>java.awt.Color</code>. สำหรับความโปร่งใส ให้ใช้ <code>new Color(r, g, b, alpha)</code>.</li>
<li><strong>ความกว้างของเส้น:</strong> วัดเป็นจุด; ค่า <code>1</code> เท่ากับ 1/72 นิ้ว.</li>
<li><strong>ความทึบและโหมดผสม:</strong> ปรับด้วย <code>setOpacity(float)</code> และ <code>setBlendMode(BlendMode)</code>.</li>
<li><strong>การหมุนและการเอียง:</strong> ใช้การแปลงผ่าน <code>setRotation(double)</code> หรือ <code>setSkew(double, double)</code> สำหรับการจัดวางขั้นสูง.</li>
</ul>
<p>ตัวอย่างการตั้งค่าคุณสมบัติขั้นสูง:</p>
<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><h2 id="พจารณาดานประสทธภาพเมอเพมรปรางลงใน-pdf">พิจารณาด้านประสิทธิภาพเมื่อเพิ่มรูปร่างลงใน PDF</h2>
<p>การเพิ่มวัตถุเวกเตอร์จำนวนมากอาจทำให้เวลาในการประมวลผลและการใช้หน่วยความจำเพิ่มขึ้น โปรดปฏิบัติตามแนวทางต่อไปนี้:</p>
<ul>
<li><strong>การวาดเป็นชุด:</strong> จัดกลุ่มรูปร่างที่เกี่ยวข้องไว้ในคอนเทนเนอร์กราฟิกเดียวก่อนเพิ่มลงในหน้า.</li>
<li><strong>ใช้วัตถุซ้ำ:</strong> หากต้องการรูปร่างที่เหมือนกันในหลายหน้า ให้ทำสำเนารูปร่างที่มีอยู่แทนการสร้างอินสแตนซ์ใหม่.</li>
<li><strong>หลีกเลี่ยงการขยายเกินขนาด:</strong> กำหนดรูปร่างที่ขนาดการแสดงผลสุดท้ายเพื่อป้องกันการแปลงเป็นราสเตอร์ที่มีค่าใช้จ่ายสูง.</li>
<li><strong>ปล่อยทรัพยากร:</strong> ปิด <code>PdfDocument</code> อย่างทันท่วงทีเพื่อปล่อยทรัพยากรพื้นฐาน.</li>
</ul>
<h2 id="สรป">สรุป</h2>
<p><a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> ให้วิธีที่ง่ายสำหรับนักพัฒนา Java ในการเพิ่มรูปร่างลงในเอกสาร PDF ทำให้สามารถสร้างรายงานและใบแจ้งหนี้ที่มีความหลากหลายและโต้ตอบได้โดยง่าย โดยการทำตามขั้นตอน เคล็ดลับการกำหนดค่า และแนวทางการทำงานที่แนะนำในคู่มือนี้ คุณสามารถรวมกราฟิกเวกเตอร์เข้าสู่กระบวนการทำงาน PDF ของคุณได้อย่างมั่นใจ อย่าลืมจัดหาลิขสิทธิ์ที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; มีลิขสิทธิ์ชั่วคราวสำหรับการประเมินค่าใช้จ่าย และรายละเอียดราคาเต็มจะอยู่ใน <a href="https://purchase.conholdate.com/pricing/total/family/">หน้าราคา</a></p>
<h2 id="คำถามทพบบอย">คำถามที่พบบ่อย</h2>
<p><strong>ฉันจะเพิ่มฟอนต์ที่กำหนดเองให้กับรูปร่างใน PDF ได้อย่างไร?</strong><br>
คุณสามารถฝังฟอนต์ TrueType ได้โดยใช้ <code>pdf.getFonts().addFont(&quot;MyFont.ttf&quot;)</code> แล้วกำหนดให้กับรูปร่างผ่าน <code>setFont(myFont)</code> SDK จะรับประกันว่าฟอนต์จะถูกฝังใน PDF ขั้นสุดท้าย</p>
<p><strong>เป็นไปได้หรือไม่ที่จะใส่รูปทรงลงใน PDF ที่มีอยู่โดยไม่ทำให้เนื้อหาเดิมหายไป?</strong><br>
ใช่ การเปิด PDF ด้วย <code>PdfDocument.open()</code> จะคงหน้าต่างๆ และวัตถุทั้งหมดที่มีอยู่ไว้ การเพิ่มรูปทรงลงในคอลเลกชันกราฟิกของหน้าเพียงทำให้หน้านั้นเพิ่มขึ้นเท่านั้น; ไม่ได้เขียนทับเนื้อหาเดิม</p>
<p><strong>ฉันสามารถส่งออกไฟล์รูปแบบใดได้บ้างหลังจากเพิ่มรูปทรง?</strong><br>
Conholdate.Total for Java รองรับการบันทึกเป็น PDF, PDF/A, PDF/X และยังรองรับรูปแบบภาพเช่น <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, และ BMP. ใช้ <code>pdf.save(&quot;output.pdf&quot;)</code> หรือ <code>pdf.save(&quot;output.png&quot;, ImageSaveOptions.Png)</code> ตามต้องการ.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
