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