goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

フリーのiText+Javaで、日本語文字、画像、図形を任意の位置に書き出し、PDFへ

2009-03-27 18:58:48 | Weblog

では、まとめとして、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とか、使うより・・・
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« フリーのライブラリiText+Jav... | トップ | 情報の伝達スピードは60年... »
最新の画像もっと見る

Weblog」カテゴリの最新記事