たぶんあるだろうと思って探したら、やっぱりありました。
Apache FOPに対応するEclipseプラグイン。
http://www.ahmadsoft.org/fopbridge.html
まだ使っていないので、試したら報告します。
ただ、Eclipse重いのであまり使いたくない、というのがホンネ。
XSLファイルのD&Dでポコっとpdfが出てくると理想なんですが。
なんだか、この世界で知らないことが多すぎて、すぐ見つけられるのに見逃しているだけな気がします。
2010年2月22日月曜日
日本語フォント:自動化の必要性
Apache FOPで、日本語フォントを使用するための操作について調べているところですが、比較的手間を要する作業のようです。
ttf:フォントファイル単体で読み込みが可能
ttc:フォントメトリクスの生成が必要
なにやら面倒な操作ですが、フォントのインポート関係は仕様変更が予定されているそうです。
次期バージョンに期待、というところでしょう。
それにしても、Apache FOPは導入が簡単な割に、コンパイルの方が面倒ですね。
ここはアプリケーションでサクっと自動化できるはずなんですが…
どこかに落ちてないものでしょうかね(笑
プログラムに組み込んで使っている方はチラホラ見かけるのですが…
ttf:フォントファイル単体で読み込みが可能
ttc:フォントメトリクスの生成が必要
なにやら面倒な操作ですが、フォントのインポート関係は仕様変更が予定されているそうです。
次期バージョンに期待、というところでしょう。
それにしても、Apache FOPは導入が簡単な割に、コンパイルの方が面倒ですね。
ここはアプリケーションでサクっと自動化できるはずなんですが…
どこかに落ちてないものでしょうかね(笑
プログラムに組み込んで使っている方はチラホラ見かけるのですが…
Apache FOPで"ようこそ!":TTFを使う
前回、Apache FOPで"Hello world!"と書かれたpdfが出力できることを確認しました。
そこで今回は、同様に"ようこそ!"と表示してみます。
Apache FOPは、デフォルトのままでは日本語フォントに対応していません。
そこで、設定用のXMLファイルを用意します。
今回は一番簡単な、TTFファイルを使用するパターンを解説します。
jpfont.xml
※ SimHeiは実際には中国語フォントですが、Windows標準でTTF形式の日本語対応フォントはSimHeiしか用意されていないようです。もし他にTTF形式の日本語フォントがあれば、そちらを使用しても構いません。
font-tripletタグのname属性は、任意の名前に設定が可能です。
次に、文書の本体であるXSLファイルを変更します。
welcome.xsl
前回の内容から変更した箇所を太字にしています。
最初の行にあるencording属性は、実際のXSLファイルのエンコーディングに合わせて変更してください。
どちらのファイルもfop.batのフォルダの直下に保存してあるものとします。
今回は追加設定ファイル(XML)を読み込む必要があるので、-cオプションを使います。
fop welcome.xsl welcome.pdf -c jpfont.xml
で実行してください。
"ようこそ!"
確認できましたか?
そこで今回は、同様に"ようこそ!"と表示してみます。
Apache FOPは、デフォルトのままでは日本語フォントに対応していません。
そこで、設定用のXMLファイルを用意します。
今回は一番簡単な、TTFファイルを使用するパターンを解説します。
jpfont.xml
<?xml version="1.0" ?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="C:\windows\fonts\simhei.ttf">
<font-triplet name="JpFont" weight="normal" style="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="C:\windows\fonts\simhei.ttf">
<font-triplet name="JpFont" weight="normal" style="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
※ SimHeiは実際には中国語フォントですが、Windows標準でTTF形式の日本語対応フォントはSimHeiしか用意されていないようです。もし他にTTF形式の日本語フォントがあれば、そちらを使用しても構いません。
font-tripletタグのname属性は、任意の名前に設定が可能です。
次に、文書の本体であるXSLファイルを変更します。
welcome.xsl
<?xml version="1.0" encoding="Shift_JIS"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="JpFont">ようこそ!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="JpFont">ようこそ!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
前回の内容から変更した箇所を太字にしています。
最初の行にあるencording属性は、実際のXSLファイルのエンコーディングに合わせて変更してください。
どちらのファイルもfop.batのフォルダの直下に保存してあるものとします。
今回は追加設定ファイル(XML)を読み込む必要があるので、-cオプションを使います。
fop welcome.xsl welcome.pdf -c jpfont.xml
で実行してください。
"ようこそ!"
確認できましたか?
2010年2月18日木曜日
Apache FOPで"Hello World!"
Apache FOPがインストールできましたので、定番のHello world!をやってみましょう。
まず、XSLファイルを作ります。
今回はwikipediaからサンプルを拝借します。
http://ja.wikipedia.org/wiki/XSL_Formatting_Objects
helloworld.xsl
Windowsの場合
インストールの項で解凍したファイルの中に"fop.bat"があります。
これをコマンドプロンプトで実行します。
fop.batのあるフォルダまで移動して
fop 入力ファイル名 出力ファイル名
このコマンドでXSLをPDFに変換できます。
今回はfop.batが"C:\fop"にあるとして話を進めます。
簡単のため、helloworld.xslを"C:\fop"の直下に置きます。
コマンドプロンプトに
cd "C:\fop"
と入力し、ディレクトリを移動します。次に
fop helloworld.xsl helloworld.pdf
と入力します。
すると、C:\fop\helloworld.pdfが生成されます。
まず、XSLファイルを作ります。
今回はwikipediaからサンプルを拝借します。
http://ja.wikipedia.org/wiki/XSL_Formatting_Objects
helloworld.xsl
<?xml version="1.0"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello world!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello world!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Windowsの場合
インストールの項で解凍したファイルの中に"fop.bat"があります。
これをコマンドプロンプトで実行します。
fop.batのあるフォルダまで移動して
fop 入力ファイル名 出力ファイル名
このコマンドでXSLをPDFに変換できます。
今回はfop.batが"C:\fop"にあるとして話を進めます。
簡単のため、helloworld.xslを"C:\fop"の直下に置きます。
コマンドプロンプトに
cd "C:\fop"
と入力し、ディレクトリを移動します。次に
fop helloworld.xsl helloworld.pdf
と入力します。
すると、C:\fop\helloworld.pdfが生成されます。
Apache FOPのインストール
XMLからPDFを作成するために必要なApache FOPをインストールします。
Apache FOPは、XSL-FOという印刷レイアウトを決めるためのメタ言語を、PDFやPS、PNGなどに変換することができるJavaアプリケーションです。
The Apache XML Graphics Projectのサイト内からダウンロードできます。
http://xmlgraphics.apache.org/fop/
バイナリのバージョンをダウンロードします。
http://xmlgraphics.apache.org/fop/download.html
Apache FOPは、XSL-FOという印刷レイアウトを決めるためのメタ言語を、PDFやPS、PNGなどに変換することができるJavaアプリケーションです。
The Apache XML Graphics Projectのサイト内からダウンロードできます。
http://xmlgraphics.apache.org/fop/
バイナリのバージョンをダウンロードします。
http://xmlgraphics.apache.org/fop/download.html
Binary Downloadの項から、FOP Distribution mirrorをクリックします。
いくつかのリンクが表示されるので、適当なミラーを選びます(一番上が無難でしょう)。
2010年2月18日時点で最新版は0.95とのことですから、binaries→fop-0.95-bin.zipを選択します。
ダウンロードしたら、適当な場所に解凍します。
おそらく既にインストールされているとは思いますが、Apache FOPはJavaアプリケーションです。
Javaアプリケーションを動かすためにはJREが必要ですので、万が一ない場合はインストールが必要です。
http://www.java.com/ja/download/
Javaアプリケーションを動かすためにはJREが必要ですので、万が一ない場合はインストールが必要です。
http://www.java.com/ja/download/
これでインストールが完了しました。
はじめに
ちょっと初めての挑戦で何を書けば良いのやら、という感じですが…
まずは、このブログを作ったキッカケを。
私は、とある大学の工学部で学生をやっています。
このブログを見ているということは、ご存知の方が多いとは思いますが、この世界、論文をはじめとして、何かと文書を書く機会が多いのです。
実は先日、論文を提出したばかりでして。
そこで使っていたのが、組版ソフトとしてはあまりにも有名なTeXというやつです。
蓄積された技術やリソースがあり、業界標準として信頼されているとは思うのですが
正直嫌いなんです。TeXが。
これほどにHTMLで書かれたテキストが世界中に溢れているのに、なぜ印刷物に限って、あんな古臭い書式を使っているのだろうか。
きっと、XMLの組版ソフトだってあるだろ、と思って調べたわけですが、ソフトが無料じゃなかったり、入門サイトが無かったりしてあまりにも取っ付きが悪い。
チクチクと調べた結果、XSLというメタ言語があるという事が判明しました。
しかもpdf化のためのパッケージが、私に馴染みのあるJavaで実装されているとのこと。
これなら何とか使えるかもしれない、と思ったわけです。
しかし、あまりにも情報が少ない。
そこで備忘録をブログにしておけば、情報が集まってくるんではなかろうかと。
私のスペックは
・テキストエディタだけで満足なHTMLが書ける
・C言語とJavaでプログラミングを経験
・TeXはテンプレート拾ってきて書いた程度
というところです。
この分野に詳しい方、ぜひ助け舟を…
というか、その前に詳しいサイトがあったら教えてください(笑
登録:
投稿 (Atom)