torutkのブログ

ソフトウェア・エンジニアのブログ

iTextでのPDF文書操作

PDF文書から指定ページを取り除くことをしたかったので、Javaから利用できるPDF操作ライブラリを探してみた。以前から何回かPDFライブラリを調べていたが、今回は、iTextを使ってみることにした。

コマンドラインツール

iTextライブラリには、コマンドラインでPDFファイルを操作するコマンドがいくつか用意されている。

PDFファイルをページ単位で分割(Burst)

指定したPDFファイルをページ毎に別PDF文書ファイルに分割します。

work$ java -cp itext-1.4.2.jar com.lowagie.tools.plugins.Burst \
ABC.pdf
There are 4 pages in the original files.

work$ ls
ABC.pdf   ABC_1.pdf   ABC_2.pdf   ABC_3.pdf   ABC_4.pdf
work$
PDFファイルを結合(Concat)

2つのPDFファイル文書を結合します。コマンドライン引数の1番目のPDFファイルと2番目のPDFファイルを結合し、3番目に指定したPDFファイルを作成します。

work$ java -cp itext-1.4.2.jar com.lowagie.tools.plugins.Concat \
 ABC_1.pdf ABC_3.pdf ABC_1_3.pdf
There are 1 pages in ABC_1.pdf
Processed page 1
There are 1 pages in ABC_2.pdf
Processed page 1

work$ ls
ABC.pdf   ABC_1.pdf   ABC_1_3.pdf   ABC_2.pdf   ABC_3.pdf  ABC_4.pdf
work$
その他のコマンド

Bookmarks2XML, Decrypt, DvdCover, Encrypt, ExtractAttachments, Handouts, HtmlBookmarks, ImageXRefViewer, InspectPDF, KnitTiff, LPRClient, NUp, PhotoAlbum, ReversePages, SelectPages, Split, Tiff2Pdf, TreeViewPDF, Txt2PDF, Watermarker, XML2Bookmarks

iTextプログラミング参考文献

iTextについては、Web上でいくつか解説ページが見付かる。

IBM developerWorks 日本語翻訳記事「Javaアプリケーションから動的にPDFファイルを生成する」

http://www-06.ibm.com/jp/developerworks/opensource/060419/j_os-javapdf.shtml

CodeZine iTextを利用してJavaからPDF形式の帳票を出力する(Java,サーブレット,PDF,帳票)

http://codezine.jp/a/article.aspx?aid=84
サーバー側(tomcat使用)で利用する話だった・・・