LoginSignup
0
1

More than 3 years have passed since last update.

JavaはPDF文書に形状を描画します

Posted at

PDFドキュメントの編集プロセスでは、ドキュメントにポリゴン、長方形、楕円などのグラフィックスを追加する必要がある場合があります。Free Spire.PDF for Javaは、Javaコードを使用してPDFドキュメントに図形を描画するのに役立ちます、形状の縁の色と塗りつぶしの色を設定します。

JARパッケージのインポート
方法1:Free Spire.PDF for Javaをダウンロードして解凍し、jarパッケージをlibフォルダーに依存関係としてJavaアプリケーションに直接インポートします。

方法2:Mavenリポジトリからjarパッケージをインストールし、pom.xmlファイルのコードを次のように構成します。

<repositories>
   <repository>
      <id>com.e-iceblue</id>
      <name>e-iceblue</name>
      <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>e-iceblue</groupId>
      <artifactId>spire.pdf.free</artifactId>
      <version>2.6.3</version>
   </dependency>
</dependencies>

Javaコード

import java.awt.*;
import java.awt.geom.Rectangle2D;


import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;


public class DrawShapes {

    public static void main(String[] args) {

        //PDFドキュメントを作成してページを追加する
        PdfDocument doc = new PdfDocument();
        PdfPageBase page = doc.getPages().add();

        //長方形を描く
        PdfPen pen =new PdfPen(new PdfRGBColor(Color.black),0.1);
        Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);
        PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rect1,new PdfRGBColor(Color.pink),new PdfRGBColor(Color.yellow),PdfLinearGradientMode.Horizontal);
        page.getCanvas().drawRectangle(pen, linearGradientBrush, rect1);

        //楕円を描く
        Point centerStart= new Point(205,45);
        Point centerEnd= new Point(205,45);
        PdfRadialGradientBrush radialGradientBrush = new PdfRadialGradientBrush(centerStart,0,centerEnd,25,new PdfRGBColor(Color.white),new PdfRGBColor(Color.cyan));
        Rectangle2D.Float rect2= new Rectangle2D.Float(180, 20, 50, 50);
        page.getCanvas().drawEllipse(pen,radialGradientBrush,rect2);

        //多角形を描く
        Point p1=new Point(290,70);
        Point p2=new Point(310,45);
        Point p3=new Point(325,60);
        Point p4=new Point(340,20);
        Point p5=new Point(370,70);
        Point[] points = {p1, p2, p3, p4, p5};
        PdfBrush brush= PdfBrushes.getGreenYellow();
        page.getCanvas().drawPolygon(pen,brush, points);

        //弧を描く
        float startAngle = 0;
        float sweepAngle = 270;
        Rectangle2D.Float rect3= new Rectangle2D.Float(0, 110, 50, 50);
        page.getCanvas().drawArc(pen, rect3, startAngle, sweepAngle);

        //円グラフを描く
        Rectangle2D.Float rect4= new Rectangle2D.Float(70, 110, 50, 50);
        page.getCanvas().drawPie(pen, rect4, startAngle, sweepAngle);

        //線を引く
        Point pStart=new Point(205,110);
        Point pEnd=new Point(205,160);
        page.getCanvas().drawLine(pen, pStart, pEnd);

        //ベジェ曲線を描く
        Point startPoint = new Point(290, 135);
        Point firstControlPoint = new Point(330, 70);
        Point secondControlPoint = new Point(330, 200);
        Point endPoint = new Point(370, 135);
        page.getCanvas().drawBezier(pen, startPoint, firstControlPoint, secondControlPoint, endPoint);

        //ファイルに保存
        doc.saveToFile("DrawShapes.pdf", FileFormat.PDF);
    }

}

shapes.jpg

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1