Itext-drawing-circle

提供:Dev Guides
移動先:案内検索

iText-円を描く

この章では、iTextライブラリを使用してPDFドキュメントに円を描く方法を説明します。

PDFに円を描く

*Document* クラスをインスタンス化することにより、空のPDFドキュメントを作成できます。 このクラスをインスタンス化する際、コンストラクターにパラメーターとして *PdfDocument* オブジェクトを渡す必要があります。

PdfDocumentに円を描くには、パッケージ com.itextpdf.kernel.pdf .canvasの PdfCanvas クラスをインスタンス化し、このクラスの* circle()*メソッドを呼び出します。

以下は、PDFドキュメントに円を描く手順です。

ステップ1:PdfWriterオブジェクトの作成

*PdfWriter* クラスは、PDFのDocWriterを表します。 このクラスは、パッケージ *com.itextpdf.kernel.pdf* に属します。 このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。

以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。

//Creating a PdfWriter
String dest = "C:/itextExamples/drawingCircle.pdf";
PdfWriter writer = new PdfWriter(dest);

このタイプのオブジェクトがPdfDocument(クラス)に渡されると、このドキュメントに追加されたすべての要素が指定されたファイルに書き込まれます。

ステップ2:PdfDocumentオブジェクトの作成

*PdfDocument* クラスは、iTextでPDFドキュメントを表すクラスです。 このクラスは、パッケージ *com.itextpdf.kernel.pdf* に属します。 (書き込みモードで)このクラスをインスタンス化するには、クラス *PdfWriter* のオブジェクトをコンストラクターに渡す必要があります。

以下に示すように、PdfWriterオブジェクトをコンストラクターに渡して、PdfDocumentクラスをインスタンス化します。

//Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);

PdfDocumentオブジェクトを作成したら、そのクラスが提供するそれぞれのメソッドを使用して、ページ、フォント、添付ファイル、イベントハンドラーなどのさまざまな要素を追加できます。

ステップ3:Documentオブジェクトを作成する

パッケージ com.itextpdf.layoutDocument クラスは、自給自足のPDFを作成する際のルート要素です。 このクラスのコンストラクターの1つは、クラスPdfDocumentのオブジェクトを受け入れます。

以下に示すように、前の手順で作成した PdfDocument クラスのオブジェクトを渡すことにより、 Document クラスをインスタンス化します。

//Creating a Document
Document document = new Document(pdfDoc);

ステップ4:PdfCanvasオブジェクトの作成

*PdfDocument* クラスの* addNewPage()*メソッドを使用して、新しい *PdfPage* クラスを作成します。 以下に示すように、このクラスのコンストラクターに *PdfPage* オブジェクトを渡すことにより、パッケージ *com.itextpdf.kernel.pdf.canvas* の *PdfCanvas* オブジェクトをインスタンス化します。
//Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();

//Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);

ステップ5色を設定する

以下に示すように、 Canvas クラスの* setColor()*メソッドを使用して、円の色を設定します。

//Setting color to the circle
Color color = Color.GREEN;
canvas.setColor(color, true);

ステップ6:円を描く

以下に示すように、 Canvas の* circle()*メソッドを呼び出して円を描きます。

//creating a circle
canvas.circle(300, 400, 200);

ステップ7:ドキュメントを閉じる

以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。

//Closing the document
document.close();

次のJavaプログラムは、iTextライブラリを使用してPDFドキュメントに円を描く方法を示しています。 drawingCircle.pdf という名前のPDF文書を作成し、その中に円を描き、パス C:/itextExamples/ に保存します

このコードを DrawingCircle.java という名前のファイルに保存します。

import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;

public class DrawingCircle {
   public static void main(String args[]) throws Exception {
     //Creating a PdfWriter
      String dest = "C:/itextExamples/drawingCircle.pdf";
      PdfWriter writer = new PdfWriter(dest);

     //Creating a PdfDocument object
      PdfDocument pdfDoc = new PdfDocument(writer);

     //Creating a Document object
      Document doc = new Document(pdfDoc);

     //Creating a new page
      PdfPage pdfPage = pdfDoc.addNewPage();

     //Creating a PdfCanvas object
      PdfCanvas canvas = new PdfCanvas(pdfPage);

     //Setting color to the circle
      Color color = Color.GREEN;
      canvas.setColor(color, true);

     //creating a circle
      canvas.circle(300, 400, 200);

     //Filling the circle
      canvas.fill();

     //Closing the document
      doc.close();

      System.out.println("Object drawn on pdf successfully");
   }
}

次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します。

javac DrawingCircle.java
java DrawingCircle

実行時に、上記のプログラムは、次のメッセージを表示するPDFドキュメントを作成します。

Object drawn on pdf successfully

指定したパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。

円を描く