トップ  検索

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
これは、便利!!

Copyright (c) 2001-2008 Takefumi MIYOSHI, All rights reserved