Java ライブラリ Apache PDFBox で PDF を操作しよう (第1回:概要と簡単な操作)

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

 本連載では Java で PDF を操作できる Apache PDFBox について解説します。 第一回の本稿では、PDFBox の概要と簡単な操作を示したいと思います。 本稿では、2016年にリリースされた Version 2 を対象に解説していきます。

Apache PDFBox について

 Apache PDFBox は比較的新しいライブラリで、Version 1.0.0 は2010年にリリースされ、2017年01月現在の最新は 2.0.4 です。 Version 1 は、日本語などのマルチバイト文字に対応していませんでしたが、2016年にリリースされた Version 2 から日本語にも対応しましたので、日本国内の開発での選択肢となるかと思います。 名前の通り、The Apache Software Foundation のもとで開発が行われており、ライセンスは Apache License, Version 2.0 です。
 PDFBox には、PDF の作成、PDF からテキストを抽出、暗号化/復号化, イメージのPDF変換、イメージの抽出 などの機能が実装されています。

ダウンロード

 Apache PDFBox は、公式サイトのダウンロードページからダウンロードすることができます。または Maven を利用して開発を行っている場合は、pom.xml につぎのように依存関係を追加してあげることで利用することができます。

<dependency>
  <groupId>org.apache.pdfbox</groupId>
  <artifactId>pdfbox</artifactId>
  <version>2.0.4</version>
</dependency>

簡単なサンプルプログラム

 それではさっそくサンプルプログラムをしてみようと思います。 最初ですので、まずは何も記述がない空のPDFファイルを出力してみようと思います。

package sample.pdfbox;

import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class Main {
  public static void main(String args[]) {
    try {
      // 空のドキュメントオブジェクトを作成します
      PDDocument document = new PDDocument();

      // 新しいページのオブジェクトを作成します
      PDPage page = new PDPage();
      document.addPage(page);

      // ドキュメントを保存します
      document.save("sample.pdf");
      document.close();
    }
    catch (IOException e) {
      e.printStackTrace();
    }
  }
}

 このプログラムを実行すると、Java の実行ディレクトリに sample.pdf というファイルが作成されます。 開いてみると、予想通り何も書かれていないページが1ページだけあります。

PDFBoxの出力例

おわりに

 今回は PDFBox の概要と簡単なサンプルプログラムを示しました。 次回は文字を PDF に埋め込む方法について解説します。 引き続きご覧ください。

>> Java ライブラリ Apache PDFBox で PDF を操作しよう (第2回:文字の表示)

Java環境構築へ戻る

変更履歴

  • 2014年07月05日 – 初稿を執筆しました。
  • 2017年01月14日 – PDFBox 2.0 に合わせて記事を修正しました。

Javaのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca