- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!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
これは、便利!!