Itext-drawing-line
iText-線を描く
この章では、iTextライブラリを使用してPDFドキュメントに線を引く方法を説明します。
PDFに線を描く
*Document* クラスをインスタンス化することにより、空のPDFドキュメントを作成できます。 このクラスをインスタンス化する際、 *PdfDocument* オブジェクトをパラメーターとしてコンストラクターに渡す必要があります。
PdfDocumentに線を引くには、パッケージ com.itextpdf.kernel.pdf.canvas の PdfCanvas クラスをインスタンス化し、このクラスの* moveTo()および lineTO()*メソッドを使用して線を作成します。
以下は、pdfドキュメントに線を引く手順です。
ステップ1:PdfWriterオブジェクトの作成
*PdfWriter* クラスは、PDFのDocWriterを表します。 このクラスは、パッケージ *com.itextpdf.kernel.pdf* に属します。 このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。
以下に示すように、文字列値(PDFを作成する必要があるパスを表す)をコンストラクターに渡すことにより、PdfWriterクラスをインスタンス化します。
//Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.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.layout の Document クラスは、自給自足の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 クラスの* moveTO()*メソッドを使用して、行の初期点を設定します。
//Initial point of the line
canvas.moveTo(100, 300);
次に、以下に示すように、* lineTo()*メソッドを使用して、このポイントから別のポイントまで線を引きます。
//Drawing the line
canvas.lineTo(500, 300);
ステップ6:ドキュメントを閉じる
以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。
//Closing the document
document.close();
例
次のJavaプログラムは、iTextライブラリを使用してPDF文書に線を描画する方法を示しています。 drawingLine.pdf という名前のPDF文書を作成し、その中に弧を描き、パス C:/itextExamples/ に保存します
このコードを DrawingLine.java という名前のファイルに保存します。
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 DrawingLine {
public static void main(String args[]) throws Exception {
//Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.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);
//Initial point of the line
canvas.moveTo(100, 300);
//Drawing the line
canvas.lineTo(500, 300);
//Closing the path stroke
canvas.closePathStroke();
//Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
javac DrawingLine.java
java DrawingLine
実行時に、上記のプログラムはPDFドキュメントを作成し、次のメッセージを表示します。
Object drawn on pdf successfully
指定したパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。