blancoPdfを使う

2019-02-28blanco,Groovy,Java

仕事上、 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

できた!これで帳票を作成していく予定。

2019-02-28blanco,Groovy,Java