4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Java8でPDFとTIFFを出力する

Posted at

概要

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();
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?