はじめに
Javaアプリケーションから帳票・契約書・レポートなどをPDF形式で自動生成したい場面は多くあります。この記事では、Java向けのPDF生成ライブラリ「iText 7」を使って、基本的なPDF出力を行う方法を解説します。
- テキストの挿入
- 表の作成
- 画像の挿入
- フォント設定
- ファイル保存
iTextとは?
iTextはJavaでPDFファイルを生成・操作できる強力なライブラリです。
- 商用利用にはライセンスが必要(LGPL/MPL → AGPL)
- 学習や個人利用での試用は無料
- MavenやGradleから簡単に導入可能
開発環境
- Java 11 以上
- iText 7 Core(オープンソース版)
- Maven使用(手動導入も可)
Maven依存関係(pom.xml)
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>8.0.2</version>
<type>pom</type>
</dependency>
PDFの基本作成
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
public class BasicPDF {
public static void main(String[] args) {
try {
String dest = "sample.pdf";
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
document.add(new Paragraph("こんにちは、PDFの世界!"));
document.close();
System.out.println("PDF作成完了: " + dest);
} catch (Exception e) {
e.printStackTrace();
}
}
}
表(テーブル)の追加
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.element.Cell;
Table table = new Table(2);
table.addCell(new Cell().add("氏名"));
table.addCell(new Cell().add("役職"));
table.addCell("田中太郎");
table.addCell("マネージャー");
document.add(table);
画像の挿入
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.layout.element.Image;
Image img = new Image(ImageDataFactory.create("logo.png"));
document.add(img);
フォントのカスタマイズ(日本語対応)
import com.itextpdf.io.font.constants.StandardFonts;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.font.PdfFont;
PdfFont font = PdfFontFactory.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H", true);
document.setFont(font);
document.add(new Paragraph("日本語のフォントも使用可能"));
まとめ
iTextを使えば、Javaで本格的なPDF出力が可能になります。帳票・レポート・契約書・グラフ付き報告などにも応用でき、業務の自動化・効率化に大きく貢献します。