標準の Javadoc は HTML ファイルで作成されますが、全部まとめて印刷する際に不便でした。
Apache POI を用いて、簡易的に Microsoft Word の .docx 形式の Javadoc を生成する DocxDoclet を作成しました。
1st release.
This is 1st release.
- HTML タグの解析は簡易的におこなっているので対応していない HTML タグはタグのまま出力します。
- Javadoc のインラインタグは無効化されて出力します。
- Apache POI など関連する JAR をひとつにまとめているので 10 MB を超えるサイズになっています。
Ant から実行する場合は以下のような Ant スクリプトになります。ソースコードは GitHub で公開しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="javadoc"> <target name="javadoc"> <javadoc access="private" additionalparam="-encoding utf-8" packagenames="パッケージ名" sourcepath="ソースファイルのパス"> <doclet name="doclet.docx.DocxDoclet" path="docxdoclet-1.0.jar"> <param name="-file" value="出力ファイル.docx" /> <param name="-font1" value="通常文字のフォント名" /> <param name="-font2" value="インラインタグ付けされた文字のフォント名" /> <param name="-title" value="題名" /> <param name="-subtitle" value="題名の補足" /> <param name="-version" value="バージョン" /> <param name="-company" value="発行者" /> <param name="-copyright" value="著作権フッタ表示" /> </doclet> </javadoc> </target> </project> |
Ant スクリプトを使用せずに直接 Javadoc コマンドを実行する場合は以下のように実行します。
1 |
javadoc.exe -private -encoding utf-8 -doclet doclet.docx.DocxDoclet -docletpath docxdoclet-1.0.jar -classpath docxdoclet-1.0.jar -sourcepath ソースファイルのパス -file 出力ファイル.docx -font1 "Meiryo UI" -font2 "Consolas" -title 題名 -subtitle 題名の補足 -version バージョン -company 発行者 -copyright 著作権フッタ表示 パッケージ名 |
Ant スクリプトの場合もコマンドラインの場合もオプションは指定する値が無い場合は省略可能です。
出力ファイル名を指定する file オプションを省略した場合はデフォルトの document.docx というファイル名が使用されます。
作成した後で気づきましたが Word (.docx) ファイルを作るならば Markdown で出力するようにして Pandoc などで .md → .docx に変換する方が扱いやすいのかも知れません。時間がある時に MarkdownDoclet を作成しようと思います。
MarkdownDoclet を作成したので次の記事で公開しました。直接 Word ファイルを作らないので手軽さは減りますが Markdown から様々な形式に変換できるので MarkdownDoclet の方が便利かも知れません。
Hi, This was very useful to me as I wanted to create doc files for my Javadoc. However, upon creation of the doument.docx, I see a lot of Korean characters in my document. How can I make the document only in English?