JavaでPDFファイルを出力する(iTextライブラリ)【出力編】

前回は「iTextライブラリ」を使用するための準備を行った。
今回は「iTextライブラリ」を利用して、実際にPDFファイルを出力する手順を紹介する。

作成するPDFは、文字列を1つだけ表示する、極めてシンプルなものとする。

ソースコード

package jp.co.smp.pdf.action;

import java.io.FileOutputStream;
import java.io.IOException;
import org.seasar.struts.annotation.Execute;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

public class IndexAction {
	
	@Execute(validator = false)
	public String index() {
		return "index.jsp";
	}
	
	@Execute(validator = false)
	public String createPdf() throws DocumentException, IOException{
		
		//文書オブジェクトを生成
		Document doc = new Document(PageSize.A4, 50, 50, 50, 50); 

		//出力先(アウトプットストリーム)の生成
		FileOutputStream fos = new FileOutputStream("C:\\temp\\test.pdf");
		
		//アウトプットストリームをPDFWriterに設定
		PdfWriter pdfwriter = PdfWriter.getInstance(doc, fos);
		
		//フォントの設定
		Font font = new Font(BaseFont.createFont("HeiseiKakuGo-W5",
               "UniJIS-UCS2-H",BaseFont.NOT_EMBEDDED),15,Font.BOLD);
		
		//文章オブジェクト オープン
		doc.open();
		
		//PDF文章に文字列を追加
		doc.add(new Paragraph("PDF作成", font));
		
		//文章オブジェクト クローズ
		doc.close();
			
		//PDFWriter クローズ
		pdfwriter.close();
		
		return null;
	}
}

[解説]
Documentクラスは、出力するPDFを表す文書オブジェクトで、Documentクラスのコンストラクタにて、出力するPDFのページサイズと上下左右の余白を設定する。
PdfWriterクラスは、PDFの出力を行うクラスで、PdfWriterクラスに、出力するDocumentインスタンスと、出力先を設定する。

フォントの設定には、Fontクラスを使用する。

Documentオブジェクトに要素を追加するには、必ず事前に「open」して、終了したら「close」する必要がある。
Documentオブジェクトに要素を追加するには、「add」メソッドを用いる。

<実行結果>
実行すると、フォルダ「C:\temp」に「test.pdf」が作成される。

<関連記事>
JavaでPDFファイルを出力する(iTextライブラリ)【準備編】
JavaでPDFファイルを出力する(iTextライブラリ)【出力編】
JavaでPDFファイルを出力する(iTextライブラリ)【テキスト自由配置編】
JavaでPDFファイルを出力する(iTextライブラリ)【画像配置編】
JavaでPDFファイルを出力する(iTextライブラリ)【図形配置編】
JavaでPDFファイルを出力する(iTextライブラリ)【図形配置編2】
JavaでPDFファイルを出力する(iTextライブラリ)【表配置編】

<お勧め書籍>