概要
PDF出力にはApache PDFBoxを利用する。
TIFF出力はJava9だと標準で対応されているらしいが、
Java8は未対応なので、JAI(Java Advanced Imaging API)を利用する。
準備
使用するライブラリをダウンロード。
Apache PDFBox
ここから必要なファイルをダウンロード
Apache PDFBox
・pdfbox-2.0.16.jar
・fontbox-2.0.16.jar
・pdfbox-tools-2.0.16.jar
(執筆時点では上記のバージョンが最新)
Mavenだと
pom.xml
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.16</version>
</dependency>
JAI
jarファイルだけ欲しかったので、java2s.comからダウンロード。
・jai_imageio-1.1.jar
実装
PDFの出力
fontboxを使うことで日本語フォントも扱える。
PDFSample.java
/**
例外処理は適宜
**/
PDDocument doc = new PDDocument();
PDPage page = new PDPage();
TrueTypeCollection ttc = new TrueTypeCollection(new File("c:/windows/fonts/msgothic.ttc"));
PDFont font = PDType0Font.load(doc, ttc.getFontByName("MS-Gothic"), true);
doc.addPage(page);
PDPageContentStream cs = new PDPageContentStream(doc, page);
cs.beginText();
cs.setFont(font, 12);
cs.newLineAtOffset(10f, 10f);
cs.showText("Hello PDFBox!");
cs.endText();
cs.close();
doc.close();
TIFFの出力
TIFFSample.java
/**
例外処理は適宜
**/
PDDocument doc = new PDDocument()
/**
省略:PDF作成処理
**/
PDFRenderer pdfRenderer = new PDFRenderer(doc);
for (int p = 0; p < doc.getNumberOfPages(); ++p) {
BufferedImage bi = pdfRenderer.renderImageWithDPI(p, 300, ImageType.RGB);
ImageIOUtil.writeImage(bi, "TIF", this.outputStream, 300);
}
doc.close();