blancoPdfを使う
仕事上、 blancoPdf というpdf作成ライブラリを使用することになった。ようはiTextのラッパーライブラリなのであるが、基盤の偉い人がこれを使ってねということなので勉強してみる。
セットアップ
blanco Framework: Download / ダウンロード からダウンロード。(antタスクというリンクをクリック。)
ダウンロード後、展開。
# 展開
$ unzip blancoPdf-0.0.6-src.zip
$ cd blancoPdf/
# ファイルが存在するか確認
$ find . -type f -name *.jar
lib.antディレクトリにblancoPdfのjarが入っているっぽい。動作検証にgroovyでコードを書こうと思うので、$HOME/.groovy/libにコピー。
libディレクトリには関連jarファイル入っているっぽいのでここのjarファイルはすべてコピー。。
$ cp lib.ant/blancopdf-0.0.6.jar ~/.groovy/lib
$ cp lib/*.jar ~/.groovy/lib
試してみる
./test/src/blanco/pdf
にサンプルコード( BlancoPdfReportTest.java )があったので、拡張子を変え内容を若干変更して実行してみる。confフォルダがないと動かない作りになっているので、実行環境以下にtest/confフォルダを作成(別の場所から持ってきた)
$ cp BlancoPdfWriterTest.java BlancoPdfWriterTest.groovy
$ mkdir test
$ cp -R ../../../../conf test/
#!/usr/bin/env groovy
package blanco.pdf
import blanco.pdf.font.BlancoPdfFontUtil
import blanco.pdf.page.valueobject.BlancoPdfPageDef
import blanco.pdf.valueobject.BlancoPdfMetrix
import com.lowagie.text.pdf.BaseFont
import com.lowagie.text.pdf.PdfContentByte
import junit.framework.TestCase
import java.awt.*
class BlancoPdfWriterTest extends TestCase {
void testBlancoPdfWriter() throws Exception {
new File("tmp").mkdirs()
final BlancoPdfPageDef pageDef = new BlancoPdfPageDef()
final BlancoPdfWriter writer = new BlancoPdfWriter(pageDef, new FileOutputStream("tmp/abc.pdf"))
writer.pdfSetting.setConfPath("test/conf/pdf")
final BaseFont bf = BlancoPdfFontUtil.getFont(writer.pdfSetting, "gothic")
final BlancoPdfMetrix metrix = new BlancoPdfMetrix()
metrix.colorText = Color.RED
writer.drawText(PdfContentByte.ALIGN_LEFT, 30, 30, "うそうそ", bf, 30, metrix)
metrix.setLineDash([3, 3] as float[])
metrix.colorStroke = Color.YELLOW
writer.drawLine(30, 30, 50, 50, metrix)
writer.newPage()
writer.drawText(PdfContentByte.ALIGN_LEFT, 30, 30, "うそうそ", bf, 30, metrix)
writer.close()
}
}
実行。
$ groovy ./BlancoPdfWriterTest.groovy
正常終了ならpdfが作成されているはず。
$ acroread tmp/abc.pdf
できた!これで帳票を作成していく予定。
ディスカッション
コメント一覧
ご利用いただき、大変ありがとうございます。
遅ればせながら、簡単な説明 Wiki をつくりました。参照くださいませ。
http://sourceforge.jp/projects/blancofw/wiki/blancoPdf
バレてしまいましたかw
結局今回はあまりpdf作成には携わらなそうです。