前回, 入門ということで, iText をダウンロードして, 簡単なPDFを作りました。
今回は, itext-asian.jar を使って, 日本語を入力していきましょう。
前回の記事
まず, itext-asian.jar をBuild Pathに入れましょう。 ダウンロード方法は, 前回の記事を参考にしてください。
こいつは, アジア系の2バイトの文字などのためのライブラリです。
このライブラリを使って, 日本語のフォントを取ってきます。 そのフォントを使って日本語を入力します
手順はこれだけです。
新たに追加したプログラムは以下です。
public static Font getJPFont() throws IOException, DocumentException
{
return new Font( BaseFont.createFont( "HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED ), 11 );
}
このプログラムは, itext で日本語のフォントを作っています。
フォントの名前と, エンコード, 文字の大きさ(pt)を指定しています。
このあたりの詳しいことは調べてみたら, CodeZine(山田 祥寛さん)の記事 に解説がありました。
準備はこれだけです。
では日本語を入れていきましょう。
private static void addJapanese( Document document ) throws IOException, DocumentException
{
Font font = getJPFont();
Paragraph preface = new Paragraph();
preface.add( new Paragraph("阿良々々木さん, かみまみま。", font));
document.add(preface);
}
さっきあったフォントを返す関数を使って, パラグラフを作って, 直接日本語を入力しました。
プログラムの全体 です。
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 );
addJapanese(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");
}
public static Font getJPFont() throws IOException, DocumentException
{
return new Font( BaseFont.createFont( "HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED ), 11 );
}
private static void addTitlePage( Document document ) throws DocumentException, IOException
{
Paragraph preface = new Paragraph();
preface.add( new Paragraph("Arararagi-san"));
document.add(preface);
}
private static void addJapanese( Document document ) throws IOException, DocumentException
{
Font font = getJPFont();
Paragraph preface = new Paragraph();
preface.add( new Paragraph("阿良々々木さん, かみまみま。", font));
document.add(preface);
}
}
結果はこんな感じです。
入力した日本語がきれいに表示されました。
0 件のコメント:
コメントを投稿