2012年4月9日月曜日

Java PDF iText(その1 入門)

こんにちは, JavaでPDFを扱うライブラリ iTextのについてです。  English (Same Contents)

今回は, iTextを使ってJava で, 簡単なPDFを作ります。

環境 : Windows7 64bit
iText : 5.2.1


iText は, iText のWebページより, ダウンロードできます。
Community 版, Commercial 版とありますが, 練習用ですので, とりあえず, Community版をFreeでダウンロードしましょう。実環境上では, 配布などが必要であれば, Commercial 版が必要です。その辺はライセンスについて, 調べてください。


Community版をクリックさらに, Download iText, the Java version of the library.


をクリックしていくと, iText, extrajas というフォルダがあります。両方ともダウンロードしましょう。
これらのフォルダを解凍すると, いろいろなjar ファイルが出てきますが,

itextpdf-5.2.1.jar itext-asian.jar (日本語をはじめとしたアジア系言語のフォント?)

の二つくらいしか使わないので, これらをBuild Pathに通しておきましょう。

関係ない話題ですが, よくググルと,

com.lowagie.text   といったパッケージと
com.itextpdf.text   といったパッケージの情報がでてきます。

前者は昔のやつです。itextpdf のほうが新しいバージョンなので, com.lowagie.text で書かれた情報だと, クラス名などがぜんぜん違ったり, 実装方法も違うので注意です。(特にヘッダの作り方など)

まずは, 日本語を使わない基本サンプルから行きましょう。(これをそのまま実行するには, c:\PDFフォルダが存在する必要があります)


package com.daiji110.itext.sample;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class FirstSample
{
private static String FILE_NAME = "c:\\PDF\\test.pdf";

/**
* @param args
*/
public static void main(String[] args) throws FileNotFoundException, DocumentException, IOException
{
Document document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(FILE_NAME));
document.open();
// Here is operations of PDF
addMetaData( document );
addTitlePage( document );
document.close();
}

private static void addMetaData( Document document )
{
document.addTitle("My First PDF");
document.addSubject("PDF Sample");
document.addKeywords("PDF Programming");
document.addAuthor("atmarkplant");
document.addCreator("atmarkplant");
}

private static void addTitlePage( Document document ) throws DocumentException, IOException
{
Paragraph preface = new Paragraph();
preface.add( new Paragraph("Arararagi-san"));
document.add(preface);
}
}





核となるのは, 赤字部分Document オブジェクト, と PDfWriter オブジェクトです。まず, このDocumentオブジェクトを作成して, それに対して, 操作をしていきます。PdfWriter オブジェクトは, 今回は使用しませんが, イベントのバインドなどを行うときは, 使用します。

Document は, サイズを指定して作ってやります。  例では, PageSize.A4  A4サイズです。
PageSize には, さまざまなサイズがあります。 PageSize.A3 など

Document には, マージンを指定した new Document(PageSize.A4, 10, 10, 10, 10 );
というコンストラクタもあります。


PdfWriter で, 出力を指定しています。ここでは, C:\PDF\test.pdf になります。

document.open() でこのPDFに対する操作を開始します。
document.close() で終了です。 この2つの間に, データの挿入などを行います。


このプログラムは,

こんな感じで, 英文字が入っただけのものです。

addMetaデータ関数では, このPDFに関するメタデータを入れています。
Adobe Reader などでcheckして見ましょう

"ファイル" -> "プロパティ" でこの情報をみることができます。






タイトル, 作成者などの情報が表示されました。

次回は, 日本語の表示(こちらブログ)や, Tableについて書きたいと思います。






























0 件のコメント:

コメントを投稿