Diary/2007-5-9
iTextとかInline::Javaとか
iTextは、JavaでPDFを操作するためのライブラリ。
http://www.lowagie.com/iText/
# ロゴが「でText」に見えてしまう...
で、ふとperlから使えたら便利かなと、
Inline::Java で Perl から Java の日付関連クラスを使用するを参考に(というかそのまま)
iTextをInline::Javaつかってperlから使ってみた。動いた。
#!/usr/bin/perl use strict; use Inline Java => 'STUDY', STUDY => [qw( java.io.FileOutputStream java.io.IOException com.lowagie.text.Document com.lowagie.text.DocumentException com.lowagie.text.Paragraph com.lowagie.text.pdf.PdfWriter )]; my $doc = com::lowagie::text::Document->new(); my $fos = java::io::FileOutputStream->new("test.pdf"); my $writer = com::lowagie::text::pdf::PdfWriter->getInstance($doc, $fos); $doc->open(); $doc->add(com::lowagie::text::Paragraph->new("Hello World")); $doc->close();
とここまでやってから、perlには、PDFJがあるよなぁと思い出したり。
しかし、Inline::Javaって便利だな。Perl書けないけど。
これでCOINSとかいじると、今より楽に実験できるようになるかな?
CPANの設定をやりなおす
最初から設定をやり直したいときは、cpanのシェルを起動して
o conf init
とする
JRubyとiText
JRubyが1.0.0RC1になってた。
というわけで、iTextをJRubyで。
include Java require 'java' import java.io.FileOutputStream import java.io.IOException import com.lowagie.text.Document import com.lowagie.text.DocumentException import com.lowagie.text.Paragraph import com.lowagie.text.pdf.PdfWriter begin doc = Document.new(); fos = FileOutputStream.new("test.pdf"); writer = PdfWriter.getInstance(doc, fos); doc.open(); doc.add(Paragraph.new("Hello World")); doc.close(); rescue DocumentException => e puts e rescue IOException => e puts e end
これは、便利!!