JavadocをPDF形式で出力する方法
ネットで探し回っても情報が少なすぎ。。
AurigaDocletを使う方法しかないような気がする。
なんとなく動いてきたのでおさらいをメモしておきます。
環境
- j2sdk1.4.2_12
- WindowsXP
- MiracleLinux3.0
- Ant1.6
セットアップ
- http://sourceforge.net/projects/aurigadoclet/ から、「AurigaDoclet 0.1b Released 」をクリックして、AurigaDoclet-0.1b.zip をダウンロード
- http://sourceforge.net/projects/aurigadoclet/ から、「Patchesリンク」をクリック。
- パッチ一覧画面から「Support for Japanese」をクリック。
- 日本語パッチの説明画面がでるので、画面下の[Download]をクリック。AurigaDoclet-0[1].1b_ja.patch をダウンロード
- ダウンロードしたAurigaDoclet-0.1b.zipを、C:\aurigadocletに展開する。
- 展開内容の確認
C:\>tree aurigadoclet
とすると、以下のようなフォルダ階層になっている。
C:\AURIGADOCLET ├─bin ├─build │ ├─classes │ │ └─com │ │ └─aurigalogic │ │ └─doclet │ │ ├─core │ │ ├─util │ │ └─writer │ ├─includes │ └─javadoc │ └─html │ └─com │ └─aurigalogic │ └─doclet │ ├─core │ ├─util │ └─writer ├─docs ├─docsrc ├─etc ├─includes ├─lib └─src └─com └─aurigalogic └─doclet ├─core ├─resources ├─util └─writer
日本語パッチのマージ
日本語パッチは自分でソースをマージしてビルドする必要がある。
patch形式のファイルはlinuxのpatchコマンドで適用する必要があるため、linux環境にファイルを移す。
今回は以下のようなパス構成としてコピーする(FTPとかSambaとかご自由に)
- C:\aurigadoclet ⇒ /tmp/aurigadoclet
- AurigaDoclet-0[1].1b_ja.patch ⇒ /tmp/AurigaDoclet-0[1].1b_ja.patch
パッチコマンドの実行
linux>cd /tmp/aurigadoclet linux>patch -p0 -d . < ../AurigaDoclet-0[1].1b_ja.patch
これでパッチが適用された。
- またWindows側にファイルを戻す
/tmp/aurigadoclet ⇒ C:\aurigadoclet
日本語パッチのビルド
ビルド前の準備
- コピー
C:\aurigadoclet\src\com\aurigalogic\doclet\resources\FOP-userconfig_ja.xml
⇒C:\aurigadoclet\FOP-userconfig_ja.xml
- リネーム(元のファイルは別名にしておく)
C:\aurigadoclet\src\com\aurigalogic\doclet\resources\xml2fo_ja.xsl
⇒C:\aurigadoclet\src\com\aurigalogic\doclet\resources\xml2fo.xsl
- リネーム(元のファイルは別名にしておく)
C:\aurigadoclet\src\com\aurigalogic\doclet\resources\default_ja.css
⇒C:\aurigadoclet\src\com\aurigalogic\doclet\resources\default.css
- 内容修正
C:\aurigadoclet\src\com\aurigalogic\doclet\resources\xml2fo.xsl の日本語が文字化けしているため、
utf-8対応のエディタで開き、修正する。(メソ?? ⇒ メソッド)など。
ビルド実行
<||
C:\aurigadoclet>ant -f build.xml
|
これで、C:\aurigadoclet\bin\AurigaDoclet.jarのタイムスタンプが更新されていればOK。
フォントメトリクス情報ファイルの作成
以下5つのコマンドを実行
java -cp C:\aurigadoclet\lib\batik.jar;C:\aurigadoclet\lib\fop.jar;C:\aurigadoclet\lib\jakarta-oro-2.0.6.jar;C:\aurigadoclet\lib\ss_css2.jar;C:\aurigadoclet\lib\Tidy.jar;C:\aurigadoclet\lib\xalan-2.0.0.jar;C:\aurigadoclet\lib\xerces-1.2.3.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS Gothic" C:\Windows\Fonts\msgothic.ttc ///MS-Gothic.xml java -cp C:\aurigadoclet\lib\batik.jar;C:\aurigadoclet\lib\fop.jar;C:\aurigadoclet\lib\jakarta-oro-2.0.6.jar;C:\aurigadoclet\lib\ss_css2.jar;C:\aurigadoclet\lib\Tidy.jar;C:\aurigadoclet\lib\xalan-2.0.0.jar;C:\aurigadoclet\lib\xerces-1.2.3.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS PGothic" C:\Windows\Fonts\msgothic.ttc ///MS-PGothic.xml java -cp C:\aurigadoclet\lib\batik.jar;C:\aurigadoclet\lib\fop.jar;C:\aurigadoclet\lib\jakarta-oro-2.0.6.jar;C:\aurigadoclet\lib\ss_css2.jar;C:\aurigadoclet\lib\Tidy.jar;C:\aurigadoclet\lib\xalan-2.0.0.jar;C:\aurigadoclet\lib\xerces-1.2.3.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS UI Gothic" C:\Windows\Fonts\msgothic.ttc ///MS-UIGothic.xml java -cp C:\aurigadoclet\lib\batik.jar;C:\aurigadoclet\lib\fop.jar;C:\aurigadoclet\lib\jakarta-oro-2.0.6.jar;C:\aurigadoclet\lib\ss_css2.jar;C:\aurigadoclet\lib\Tidy.jar;C:\aurigadoclet\lib\xalan-2.0.0.jar;C:\aurigadoclet\lib\xerces-1.2.3.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho" C:\Windows\Fonts\msmincho.ttc ///MS-Mincho.xml java -cp C:\aurigadoclet\lib\batik.jar;C:\aurigadoclet\lib\fop.jar;C:\aurigadoclet\lib\jakarta-oro-2.0.6.jar;C:\aurigadoclet\lib\ss_css2.jar;C:\aurigadoclet\lib\Tidy.jar;C:\aurigadoclet\lib\xalan-2.0.0.jar;C:\aurigadoclet\lib\xerces-1.2.3.jar; org.apache.fop.fonts.apps.TTFReader -ttcname "MS PMincho" C:\Windows\Fonts\msmincho.ttc ///MS-PMincho.xml
- C:ドライブの直下に、5つのファイルが出来ているのを確認する。
MS-Gothic.xml
MS-Mincho.xml
MS-PGothic.xml
MS-PMincho.xml
MS-UIGothic.xml
が出来ていれば成功。
PDF形式Javadocの生成
<?xml version="1.0" encoding="UTF-8"?> <project default="javadoc"> <target name="javadoc"> <property name="lib" value="aurigadoclet\lib" /> <!-- プログラムのビルドに必要なJarファイル --> <property name="app.lib" value="C:\hoge\lib" /> <javadoc access="public" additionalparam="-fopconfigfile C:\aurigadoclet\FOP-userconfig_ja.xml -encoding Shift_JIS -format pdf -out .\javadoc\api.pdf" packagenames="com.hoge.app,hoge.com.app2" sourcepath="source"> <doclet name="com.aurigalogic.doclet.core.Doclet" path="C:\aurigadoclet\bin\AurigaDoclet.jar"/> <classpath> <fileset dir="${lib}"> <include name="*.jar" /> </fileset> <fileset dir="${app.lib}"> <include name="*.jar" /> </fileset> </classpath> </javadoc> </target> </project>
- Ant(Javadoc)の実行
C:\hoge>ant -f javadoc-aurigadoclet.xml