Itext-link-annotation
iText-リンク注釈
この章では、iTextライブラリを使用してPDF文書にリンク注釈を追加する方法を説明します。
PDFでのリンク注釈の作成
*Document* クラスをインスタンス化することにより、空のPDFドキュメントを作成できます。 このクラスをインスタンス化する際、コンストラクターにパラメーターとして *PdfDocument* オブジェクトを渡す必要があります。
PDFドキュメントでテキスト注釈を使用するには、PdfTextAnnotationクラスのオブジェクトを作成し、これをPdfPageに追加する必要があります。
PDFドキュメントでテキスト注釈を使用する手順は次のとおりです。
ステップ1:PdfWriterオブジェクトの作成
*PdfWriter* クラスは、PDFのDocWriterを表します。 このクラスは、パッケージ *com.itextpdf.kernel.pdf* に属します。 このクラスのコンストラクターは、PDFが作成されるファイルのパスを表す文字列を受け入れます。
以下に示すように、コンストラクターにストリング値(PDFを作成する必要があるパスを表す)を渡すことにより、 PdfWriter クラスをインスタンス化します。
//Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.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:PdfAnnotationオブジェクトの作成
パッケージ com.itextpdf.kernel.pdf.annot の PdfAnnotation クラスは、すべての注釈のスーパークラスを表します。
派生クラスの中で、 PdfLinkAnnotation クラスはリンクアノテーションを表します。 以下に示すように、このクラスのオブジェクトを作成します。
//Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
ステップ5:注釈のアクションを設定する
以下に示すように、 PdfLinkAnnotation クラスの* setAction()*メソッドを使用して、アクションを注釈に設定します。
//Setting action of the annotation
PdfAction action = PdfAction.createURI("http://www.finddevguides.com/");
annotation.setAction(action);
ステップ6:リンクを作成する
以下に示すように、パッケージ com.itextpdf.layout.element の Link クラスをインスタンス化して、リンクを作成します。
//Creating a link
Link link = new Link("Click here", annotation);
ステップ7:リンクアノテーションを段落に追加する
以下に示すように、 Paragraph クラスをインスタンス化して新しい段落を作成し、このクラスの* add()*メソッドを使用して前の手順で作成したリンクを追加します。
//Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to finddevguides ");
//Adding link to paragraph
paragraph.add(link.setUnderline());
ステップ8:文書に段落を追加する
以下に示すように、 Document クラスの* add()*メソッドを使用して、文書に段落を追加します。
//Adding paragraph to document
document.add(paragraph);
ステップ9:ドキュメントを閉じる
以下に示すように、 Document クラスの* close()*メソッドを使用してドキュメントを閉じます。
//Closing the document
document.close();
例
次のJavaプログラムは、iTextライブラリを使用してPDF文書にリンク注釈を追加する方法を示しています。
*linkAnnotation.pdf* という名前のPDF文書を作成し、それにリンク注釈を追加し、パス *C:/itextExamples/* に保存します
このコードを LinkAnnotation.java という名前のファイルに保存します。
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.action.PdfAction;
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Link;
import com.itextpdf.layout.element.Paragraph;
public class LinkAnnotation {
public static void main(String args[]) throws Exception {
//Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.pdf";
PdfWriter writer = new
PdfWriter(dest);
//Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
//Creating a Document
Document document = new Document(pdf);
//Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
//Setting action of the annotation
PdfAction action = PdfAction.createURI("http://www.finddevguides.com/");
annotation.setAction(action);
//Creating a link
Link link = new Link("Click here", annotation);
//Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to finddevguides ");
//Adding link to paragraph
paragraph.add(link.setUnderline());
//Adding paragraph to document
document.add(paragraph);
//Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
javac LinkAnnotation.java
java LinkAnnotation
実行時に、上記のプログラムは、次のメッセージを表示するPDFドキュメントを作成します。
Annotation added successfully
指定したパスを確認すると、以下に示すように、作成されたPDFドキュメントを見つけることができます。