最近(?)の iText には iText Toolbox[4] という PDF を操作する GUI
がついていますが、使いづらい :-<
へたな GUI よりコマンドラインで十分という訳で、シェルスクリプト
を組んでみました(...と言っても最後の 2行ぐらいしか中身がないの
ですけど :-)
sourceforge に コンパイル済みの jar ファイルが転がっていますが、
それでは何だか動かなさそうなので、ソースファイルからコンパイル
し直した方が良さそうです:
% mkdir work
% cd work
% tar xzvf ../iText-src-2.1.2u.tar.gz
% cd src
% ant -f ant/compile.xml jar
% ant -f ant/compile.xml jar.toolbox
% mv ../lib/iText* どこかのディレクトリ
使い方の例:
(添付のシェルスクリプトを itexttoolbox とすれば)
jardir を iText.jar, iText-toolbox.jar のあるディレクトリに書き換えて、
% itexttoolbox SelectedPages src.pdf dest.pdf 1-20
(src.pdf の p.1 から p.20 までを dest.pdf に出力する)
参考文献:
[1]"AccessPDF - Pdftk" <http://www.accesspdf.com/pdftk/>
[2]"iText, a Free Java-PDF library: Home Page" <http://www.lowagie.com/iText/>
[3]iText-src-2.1.2u.tar.gz
<http://prdownloads.sourceforge.net/itext/iText-src-2.1.2u.tar.gz>
[4]"iText Toolbox" <http://www.lowagie.com/iText/toolbox.html>
--------------------------------------------------------------------------
#!/bin/sh
jardir=$HOME/local/share/java/iText
shorthelp ()
{
sed -e 's/^[ft]://' \
-e 's/a://g' \
-e 's/o:\([^ ]*\)/[\1]/g' \
<<eof
Usage: `basename $0` toolname arguments
[Convert to PDF]
f:KnitTiff a:odd a:even a:destfile
f:PhotoAlbum a:srcdir a:destfile
f:Tiff2Pdf a:srcfile a:destfile o:A4|LETTER|ORIGINAL
f:Txt2Pdf a:srcfile a:destfile a:pagesize o:PORTRAIT|LANDSCAPE
'pagesize' is one of:
LETTER NOTE LEGAL TABLOID EXECUTIVE POSTCARD
A0 A1 A2 A3 A4 A5
A6 A7 A8 A9 A10 B0
B1 B2 B3 B4 B5 B6
B7 B8 B9 B10 ARCH_E ARCH_D
ARCH_C ARCH_B ARCH_A FLSA FLSE HALFLETTER
_11X17 ID_1 ID_2 ID_3 LEDGER CROWN_QUARTO
LARGE_CROWN_QUARTO DEMY_QUARTO ROYAL_QUARTO CROWN_OCTAVO
LARGE_CROWN_OCTAVO DEMY_OCTAVO ROYAL_OCTAVO SMALL_PAPERBACK
PENGUIN_SMALL_PAPERBACK PENGUIN_LARGE_PAPERBACK
[Encrypt]
f:Encrypt a:srcfile a:destfile o:ownerpasswd o:userpasswd o:permissions o:40|128
'permissions' bit fields are:
AllowPrinting
AllowModifyContents
AllowCopy
AllowModifyAnnotations
AllowFillIn (128 bit only)
AllowScreenReaders (128 bit only)
AllowAssembly (128 bit only)
AllowDegradedPrinting (128 bit only)
[Manipulate]
f:Burst a:srcfile
f:Concat a:srcfile1 a:srcfile2 a:destfile
f:NUp a:srcfile a:destfile a:pow2
f:SelectedPages a:srcfile a:destfile a:selection
'selection' general syntax is:
[!][o][odd][e][even]start-end[,[!][o][odd][e][even]start-end]
f:Split a:srcfile a:destfile1 a:destfile1 a:pagenumber
f:Watermarker a:srcfile a:watermark a:fontsize a:opacity(0.0-1.0) a:destfile
[Properties]
f:HtmlBookmarks a:srcfile o:ownerpassword
f:InspectPDF a:srcfile o:ownerpassword
[Various]
f:DvdCover a:destfile a:title a:backgroundcolor o:front o:back o:side
f:ExtractAttachments a:srcfile
f:Handouts a:srcdir a:destfile a:pages
f:LPRClient a:srcfile a:hostname a:queuename a:copies
see also <http://www.lowagie.com/iText/toolbox.html>
eof
}
if [ $# -eq 0 ]; then
shorthelp
exit 0
fi
java -cp $jardir/iText-toolbox.jar:$jardir/iText.jar \
com.lowagie.toolbox.plugins."$@"
--------------------------------------------------------------------------