トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2007-5-9の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!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
 
 doc =  Document.new();
 fos = FileOutputStream.new("test.pdf");
 writer = PdfWriter.getInstance(doc, fos);
 doc.open();
 doc.add(Paragraph.new("Hello World"));
 doc.close();
 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

これは、便利!!