<?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/ja/tag/pdf-shape-manipulation/</link>
    <description>Recent content in pdf shape manipulation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/ja/tag/pdf-shape-manipulation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>JavaでPDFにシェイプを追加する</title>
      <link>https://blog-qa.conholdate.com/ja/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/ja/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>
<p><strong>PDF ドキュメントの読み込み</strong> - <code>PdfDocument</code> のインスタンスを作成し、対象の PDF ファイルを開きます。このクラスは <a href="https://reference.conholdate.com/java/">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>シェイプオブジェクトの作成</strong> - <code>ShapeFactory</code> を使用して矩形、楕円、または線をインスタンス化します。位置、サイズ、視覚属性を設定します。</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>ページにシェイプを追加</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>Save the Updated 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>以下の例は、すべての手順を1つの実行可能なプログラムにまとめたものです。</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>// 四角形を作成
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="java-のインストールとセットアップ">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="結論">結論</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>
はい。<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>
