<?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/ko/tag/pdf-shape-manipulation/</link>
    <description>Recent content in pdf shape manipulation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ko</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/ko/tag/pdf-shape-manipulation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Java에서 PDF에 도형 추가</title>
      <link>https://blog-qa.conholdate.com/ko/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/ko/total/add-shapes-to-pdf-in-java/</guid>
      <description>Conholdate.Total for Java를 사용하여 Java에서 PDF에 도형을 추가하는 방법을 배우세요. 코드, 설정 및 벡터 그래픽에 대한 모범 사례가 포함된 단계별 가이드를 따라보세요.</description>
      <content:encoded><![CDATA[<p>PDF 파일에 벡터 그래픽을 추가하는 것은 보고서, 청구서 및 인터랙티브 문서를 생성할 때 일반적인 요구 사항입니다. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a>는 서버 측에서 PDF 조작을 단순화하는 강력한 SDK입니다. 이 가이드에서는 PDF에 사각형, 타원 및 선을 삽입하고, 외관을 구성하며, 성능 고려 사항을 처리하는 방법을 명확한 Java 코드 예제와 함께 배웁니다.</p>
<h2 id="java에서-pdf에-도형-추가-단계">Java에서 PDF에 도형 추가 단계</h2>
<ol>
<li><strong>Maven 저장소 및 종속성 추가</strong> - Conholdate Maven 저장소와 <code>conholdate-total</code> 종속성을 <code>pom.xml</code>에 포함합니다. 이렇게 하면 <code>PdfDocument</code> 및 <code>ShapeFactory</code>와 같은 SDK 클래스들을 사용할 수 있습니다.
<!-- 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 참조</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>도형 객체 만들기</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><pre tabindex="0"><code>// Ellipse
   Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
   ellipse.setFillColor(Color.GREEN);
   ellipse.setStrokeColor(Color.DARK_GRAY);
   ellipse.setLineWidth(1.5f);
</code></pre><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>페이지에 도형 추가</strong> - 문서에서 원하는 페이지를 가져와 각 도형을 해당 페이지의 그래픽 컬렉션에 추가합니다.</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>업데이트된 PDF 저장</strong> - 모든 도형이 추가된 후, 문서를 새 파일에 저장합니다.
<!-- 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="java에서-pdf에-도형-추가---전체-코드-예제">Java에서 PDF에 도형 추가 - 전체 코드 예제</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 {
// PDF 문서 초기화
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>// Create ellipse
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>)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 뒤 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 <a href="https://docs.conholdate.com/java/">공식 문서</a>를 참조하거나 <a href="https://forum.conholdate.com/c/total/5">지원 팀</a>에 문의하십시오.</p>
</blockquote>
<h2 id="installation-and-setup-in-java">Installation and Setup in Java</h2>
<p>Conholdate.Total for Java를 사용하려면 공식 사이트에서 최신 릴리스를 다운로드하고 앞에서 보여준 Maven 의존성을 추가합니다. SDK는 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="conholdatetotal를-사용하여-java에서-pdf에-도형-추가">Conholdate.Total를 사용하여 Java에서 PDF에 도형 추가</h3>
<p>Conholdate.Total for Java은 PDF 콘텐츠를 생성하고 편집하기 위한 통합 API를 제공합니다. 도형 그리기 기능은 벡터 그래픽을 사용하여 추가된 요소가 어떤 확대 수준에서도 선명하게 유지됩니다. 기본 도형(사각형, 타원, 선)뿐만 아니라 복잡한 경로도 그릴 수 있습니다.</p>
<h3 id="conholdatetotal이-이-작업에-중요한-기능">Conholdate.Total이 이 작업에 중요한 기능</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>Position and Size:</strong> 절대 좌표(포인트) 또는 페이지 크기에 대한 비율(퍼센트)을 사용합니다.</li>
<li><strong>Colors:</strong> SDK는 <code>java.awt.Color</code> 객체를 허용합니다. 투명도를 위해서는 <code>new Color(r, g, b, alpha)</code>를 사용하십시오.</li>
<li><strong>Line Width:</strong> 포인트 단위로 측정되며, 값 <code>1</code>은 1/72 인치에 해당합니다.</li>
<li><strong>Opacity and Blend Mode:</strong> <code>setOpacity(float)</code> 및 <code>setBlendMode(BlendMode)</code>로 조정합니다.</li>
<li><strong>Rotation and Skew:</strong> 고급 레이아웃을 위해 <code>setRotation(double)</code> 또는 <code>setSkew(double, double)</code>를 사용하여 변환을 적용합니다.</li>
</ul>
<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>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="pdf에-도형을-추가할-때-성능-고려-사항">PDF에 도형을 추가할 때 성능 고려 사항</h2>
<p>많은 벡터 객체를 추가하면 처리 시간과 메모리 사용량이 증가할 수 있습니다. 다음 지침을 따르세요:</p>
<ul>
<li><strong>Batch Drawing:</strong> 페이지에 추가하기 전에 관련된 도형들을 하나의 그래픽 컨테이너로 그룹화합니다.</li>
<li><strong>Reuse Objects:</strong> 여러 페이지에 동일한 도형이 필요할 경우, 새 인스턴스를 만들지 말고 기존 도형을 복제합니다.</li>
<li><strong>Avoid Over‑Scaling:</strong> 비용이 많이 드는 래스터 변환을 방지하기 위해 최종 표시 크기로 도형을 정의합니다.</li>
<li><strong>Dispose Resources:</strong> 네이티브 리소스를 해제하기 위해 <code>PdfDocument</code>를 즉시 닫습니다.</li>
</ul>
<h2 id="conclusion">Conclusion</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="faq">FAQ</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>
예. <code>PdfDocument.open()</code>으로 PDF를 열면 모든 기존 페이지와 객체가 보존됩니다. 페이지의 그래픽 컬렉션에 도형을 추가하면 페이지가 보강될 뿐이며 기존 내용을 덮어쓰지 않습니다.</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>
