では、まとめとして、iTextを使って、
・日本語文字
・画像
・図形
を任意の位置に書き出し、PDFへ出力します。
日本語文字を扱うには、iTextAsian.jarというjarが必要なようです。
ここ
http://sourceforge.net/project/downloading.php?groupname=itext&filename=iTextAsian.jar
にあるみたいです。
ダウンロードしたら、EclipseでJarを付け足すわけですが、それについては、
ここに書いてある方法で追加してくださいませ。
で、そうしたら、ソースコード。
今回、図形は、ついでなので、 前に作ったtest.jpgと、WIKIPEDIAをcode39で表現したものをだしてみたいと思います。
import com.lowagie.text.*; import com.lowagie.text.pdf.*; import java.io.*; public class MojiTest { public static void main(String[] args) throws Exception{ // ドキュメントを作成 Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("moji.pdf")); document.open(); PdfContentByte cb = writer.getDirectContent(); // 文字を指定した位置に書く cb.beginText(); BaseFont bf = BaseFont.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_embedDED); cb.setFontAndSize(bf, 12); cb.moveText(10, 800); cb.showText("てすと mytest 123"); cb.endText(); // 指定したところに、図形を描く(赤い四角とふつうの円) cb.setRGBColorFill(255, 0, 0); cb.rectangle(100, 700, 50, 50); cb.fill(); cb.setRGBColorFill(0, 0, 0); cb.ellipse(200, 700, 250, 650); cb.stroke(); // CODE39のバーコードを書く Barcode39 code39 = new Barcode39(); code39.setCode("WIKIPEDIA"); Image image39 = code39.createImageWithBarcode(cb, null, null); cb.addImage(image39, image39.getWidth(), 0,0,image39.getHeight(), 10, 600); // イメージ出力(JPEGファイル読み込み) Image jpg = Image.getInstance("test.jpg"); cb.addImage(jpg, jpg.getWidth(), 0,0,jpg.getHeight(), 10, 500); // クローズ document.close(); } } |
参考にしたサイト
・http://www.ujihara.jp/iTextdotNET/examples/com/lowagie/examples/directcontent/text/Text.java
・http://www.northvan.jp/?p=13
なんか、PSのコマンドっぽい書き方になってきた。
めんどっちいけど、こっちのほうが、制御しやすそう。Chunkとか、使うより・・・