!iTextとかInline::Javaとか iTextは、JavaでPDFを操作するためのライブラリ。 http://www.lowagie.com/iText/ # ロゴが「でText」に見えてしまう... で、ふとperlから使えたら便利かなと、 [Inline::Java で Perl から Java の日付関連クラスを使用する|http://vlog.blog32.fc2.com/blog-entry-100.html]を参考に(というかそのまま) 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|http://hp1.jonex.ne.jp/~nakajima.yasushi/]があるよなぁと思い出したり。 しかし、Inline::Javaって便利だな。Perl書けないけど。 これでCOINSとかいじると、今より楽に実験できるようになるかな? !CPANの設定をやりなおす 最初から設定をやり直したいときは、cpanのシェルを起動して o conf init とする !JRubyとiText [JRuby|http://jruby.codehaus.org/Home]が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 これは、便利!!