2009年12月アーカイブ

iText の表に斜線を引く

帳票印刷等で、表のセルに斜め線を入れたいことがあります。
PdfPTable や PdfPCell には斜線を引くメソッドがありませんが、
PdfContentByte で、直接、描画する方法が考えられます。

座標の原点は左下で、A4用紙の幅は595ユニット、高さは842ユニットです。
なので例えば、上下左右に30ユニットずつ余白をとって作成した表の、左上隅のセルに斜線を入れたい場合には次のようにします。(セルの高さが20ユニット、セルの列幅が、表の幅の1/3の場合の例。)

float  w = (595 - 60)/3;
float  h = 20;
float px = 30;
float py = 842 - 30;
PdfContentByte cb = pdfwriter.getDirectContent();
cb.moveTo(px, py);
cb.lineTo(px+w, py-h);
cb.stroke();

サンプルコード

tebletest

iText 5.0 で iTextAsian.jar を使う

iText 5.0.0 では、パッケージ名が com.lowagie から com.itextpdf に変更されています。そのため、iTextAsian.jar をそのまま使うことができません。

以下のように jar を解いて、パッケージ名を変更したのち、また jar に固めれば OK です。

> jar xvf iTextAsian.jar
> cd com
> ren lowagie itextpdf
> cd ..
> jar cvf iTextAsian.jar com