読者です 読者をやめる 読者になる 読者になる

「Java」iText で任意のフォントを使用して PDF ファイルを出力する

iText で任意のフォントを使用して PDF ファイルを出力するサンプルを書いてみました。
その時のメモです。

■ PDFTest.java

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;

import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;

public class PDFTest {
	public static void main(String[] args) throws Exception {
		ByteArrayOutputStream bos = new ByteArrayOutputStream();

		Document document = new Document();
		PdfWriter.getInstance(document, bos);
		document.open();
		BaseFont bf = BaseFont.createFont("sazanami-gothic.ttf",
				BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
		Font font = new Font(bf, 25);
		document.add(new Paragraph("Windowsでコンピューターの世界が広がります", font));
		document.close();

		FileOutputStream fos = new FileOutputStream(new File("output.pdf"));
		fos.write(bos.toByteArray());
		fos.close();
	}
}

※ フォントはお決まり?の "さざなみフォント" で!

無事 PDF ファイルが出力されました。

以上です。

[ 検証環境 ]
Windows 7 SP1
Java SE 7 Update 45
iText 1.3.1 ( 古い・・・ )

iText の古いバージョン公式サイトからダウロードできるところ見つけられなかったので、JasperReports に同梱されているやつを使用しました ( iText 1.3.1 は JasperReports 1.2.2 に同梱されてます )。

・JasperReports Library - Browse /archive/jasperreports/JasperReports 1.2.2 at SourceForge.net
http://sourceforge.net/projects/jasperreports/files/archive/jasperreports/JasperReports%201.2.2/

あと、公式ではなさそうな雰囲気だけど、以下のサイトは iText の古いバージョンとかもダウロードできそうな感じです。

iText Download - Open Source Software Package Details
http://olex.openlogic.com/packages/itext/