ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Coccon2で日本語を出す

2008-10-07 17:48:46 | JavaとWeb

 さっき、Cocoonのインストールを書いたけど、これでは、日本語が出ない。
 なので、日本語を出す設定について、さらにメモメモ。

Cocoon2による日本語PDF作成 設定メモ
http://www.kcat.zaq.ne.jp/jasper/groupware/Cocoon2_PDF.html

を参照してというか、それをなぞって、一部最新バージョンに更新した形で書いてます。

 前の記事のインストールが終わったところから書いています。なので、OSなどの環境は、前の記事と同じです。

 なお、文中の< > ¥は、全部半角です。




■フォント用のフォントメトリクスファイルを作成

・Cドライブの直下にfop-fontsというフォルダを作りました。
  →コマンドラインから mkdir c:¥fop-fonts を実行しましたけど、
   すなおに、新規作成でつくっても、たぶんOK

・そしたら、cocoonの下のWEB-INF¥libに移動します
  →前の例だと、
    C:¥Program Files¥Apache Software Foundation¥Tomcat 5.5¥webapps¥cocoon¥WEB-INF¥lib

・そこに、フォントメトリクスファイルを作成(TTFReader)するバッチファイルを作成
 →さっき移動したcocoon¥WEB-INF¥libに、mkfonts.batというファイルを作成し、以下の内容を書きます。

java -cp fop-0.20.5.jar;xercesImpl-2.9.1.jar;xml-apis-1.3.04.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Gothic" C:¥WINDOWS¥Fonts¥MSGOTHIC.TTC c:¥fop-fonts¥msgothic.xml
java -cp fop-0.20.5.jar;xercesImpl-2.9.1.jar;xml-apis-1.3.04.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS PGothic" C:¥WINDOWS¥Fonts¥MSGOTHIC.TTC c:¥fop-fonts¥mspgothic.xml
java -cp fop-0.20.5.jar;xercesImpl-2.9.1.jar;xml-apis-1.3.04.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS UI Gothic" C:¥WINDOWS¥Fonts¥MSGOTHIC.TTC c:¥fop-fonts¥msuigothic.xml
java -cp fop-0.20.5.jar;xercesImpl-2.9.1.jar;xml-apis-1.3.04.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho" C:¥WINDOWS¥Fonts¥MSMINCHO.TTC c:¥fop-fonts¥msmincho.xml
java -cp fop-0.20.5.jar;xercesImpl-2.9.1.jar;xml-apis-1.3.04.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS PMincho" C:¥WINDOWS¥Fonts¥MSMINCHO.TTC c:¥fop-fonts¥mspmincho.xml

(上記¥は、本当は半角の円マークなので、作成するときは、置換してください。java -cp から.xmlで1行です)

・そのバッチファイルを実行すると、c:¥fop-fontsにファイルが出来るはず。




■FOPのユーザーコンフィグレーションファイルを作成

 上記の参照サイトに、この例でやっているコンフィグレーションファイルがおいてあるようです。
 config.xml

 これをダウンロードしてきて、embed-fileの、C:¥WINNT¥Fontsを、C:¥WINDOWS¥Fontsに置換しました。
 それを、c:¥fop-fontsの下に置きました。





■PDFシリアライザーの設定を変更

 cocoonの直下にあるsitemap.xmap、つまり、

  C:¥Program Files¥Apache Software Foundation¥Tomcat 5.5¥webapps¥cocoon¥sitemap.xmap

 をエディタで開いて、fo2pdfのところを書き換えます。
 以下のところを探して、赤字のところを入れてください。

<map:serializer logger="sitemap.serializer.fo2pdf" mime-type="application/pdf" name="fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer">
<user-config>C:/fop-fonts/config.xml</user-config>

<!-- This element specifies URL to FOP user configuration file.
It can be absolute file URL or relative to the servlet context.
Examples:

<user-config>file:/C:/cocoon/fop-config.xml</user-config>
<user-config>WEB-INF/fop-config.xml</user-config>
-->

(上記< > ¥は、本当は半角なので、作成するときは、置換してください。)
 



■日本語コンテンツの作成 その1:XMLファイル作成

 上記までが(サーブレット)全体設定で、これからが、個々のコンテンツの設定です。
 今回は、前の例のHelloのPDFを置き換えることにします。

 前回のHelloのPDFは、追っていくと分かるのですが(最終的に
C:¥Program Files¥Apache Software Foundation¥Tomcat 5.5¥webapps¥cocoon¥samples¥blocks¥fop
にいき、そこのsitemap.xmap中、hello.pdfのところをみると、

XMLファイルは
samples/hello-world/content/hello.xml
スタイルシートは
samples/hello-world/style/xsl/page2fo.xsl

を使っているそうです。
そこで、
C:¥Program Files¥Apache Software Foundation¥Tomcat 5.5¥webapps¥cocoon¥samples¥hello-world¥content¥hello.xml
の内容を、上記サイトのXMLのサンプルファイル(これ)に置き換えます。




■日本語コンテンツの作成 その2:スタイルシート修正

 先ほど書いたように、スタイルシートは

C:¥Program Files¥Apache Software Foundation¥Tomcat 5.5¥webapps¥cocoon¥samples¥hello-world¥style¥xsl¥page2fo.xsl

 にあります。これを書き換えます。書き換えポイントは2つ

(1)fo:rootタグを探してください
   →fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"のあとに、language="ja"を追加

(2)xsl:template がならんでいるところに
 以下のものを追加

<xsl:template match="mincho">
<fo:block font-family="MS-Mincho" font-size="12pt" space-before.optimum="12pt" text-align="left">
<xsl:apply-templates/></fo:block>
</xsl:template>

<xsl:template match="pmincho">
<fo:block font-family="MS-PMincho" font-size="12pt" space-before.optimum="12pt" text-align="left">
<xsl:apply-templates/></fo:block>
</xsl:template>

(上記< > ¥は、本当は半角なので、作成するときは、置換してください。)




■で、起動する

 あとは。前に書いた「5.PDFのHelloWorldをだす。」と同じ。

 Cocoonのページを出し、PDFのページにいくと、置き換えた日本語のHelloが見える。



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« そーいや、cocoonって、どー... | トップ | JavaでJPEGファイルを読み込... »
最新の画像もっと見る

JavaとWeb」カテゴリの最新記事