DITA-OT1.4.3をコマンド・プロンプトから簡単に実行するためのバッチ

DITA-OTの実行方法には、Antビルド・ファイルを直接実行する方法と、dost.jarを使う方法の2つがある。dost.jarを使うと、Antビルド・ファイルにさわることなくDITA-OTを実行できるので、Antに不慣れな人には便利である。しかし、dost.jarを使ってDITA-OTを実行するにしても、クラスパスの設定や各種オプションの指定を毎回行うのは面倒である。そこで、DITA-OTを簡単に実行するためのバッチ・ファイルを作ってみた。

dost.jarを使った場合は、DITA-OTの実行に必要なAntパラメータがproperty.tempというファイルに出力され、これに基づいてAntビルド・ファイルが実行されるしくみになっている。

参考にしたのは以下のページ。

build_dita.bat
@echo off

REM
REM === 重要 ===
REM
REM このバッチを使う前に、環境変数 DITA-OTにDITA-OTのインストール・フォルダのパスを設定してください。
REM 
REM 例) DITA-OT = C:\DITA-OT1.4.3\  <--- 最後の\を忘れないように注意のこと
REM

REM === 使い方 ===
REM
REM > build_dita arg1-dita-fname arg2-transtype [arg3-dita-ext]
REM
REM   arg1-dita-fname : マップまたはトピックのファイル・パス
REM   arg2-transtype  : xhtml, htmlhelp, pdf
REM   arg3-dita-ext   : DITAトピック・ファイルの拡張子(省略すると、".dita")
REM

REM === 環境変数DITA-OTが設定されているか確認する ===

if "%DITA-OT%" == "" goto ENV-ERR

REM === バッチの引数が指定されているか確認する ===

if [%1] == [] goto ARG-ERR

if [%2] == [] goto ARG-ERR

if [%3] == [] (
  set DITA_EXT=dita
) else (
  set DITA_EXT=%3
)

REM === 環境変数のセットアップ ===

REM 下記のコードは、DITA-OT 1.4.3のstartcmd.batのコピーです。

REM  ここから

REM  This file is part of the DITA Open Toolkit project hosted on 
REM  Sourceforge.net. See the accompanying license.txt file for 
REM  applicable licenses.
REM  (c) Copyright IBM Corp. 2006 All Rights Reserved.

REM Get the absolute path of DITAOT's home directory
set DITA_DIR=%DITA-OT%

REM Set environment variables
set ANT_OPTS=-Xmx800m %ANT_OPTS%
set ANT_OPTS=%ANT_OPTS% -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
set ANT_HOME=%DITA_DIR%tools\ant
set PATH=%DITA_DIR%tools\ant\bin;%PATH%
set CLASSPATH=%DITA_DIR%lib;%DITA_DIR%lib\dost.jar;%DITA_DIR%lib\resolver.jar;%DITA_DIR%lib\icu4j.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9.jar;%DITA_DIR%lib\saxon\saxon9-dom.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-dom4j.jar;%DITA_DIR%lib\saxon\saxon9-jdom.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-s9api.jar;%DITA_DIR%lib\saxon\saxon9-sql.jar;%CLASSPATH%
set CLASSPATH=%DITA_DIR%lib\saxon\saxon9-xom.jar;%DITA_DIR%lib\saxon\saxon9-xpath.jar;%DITA_DIR%lib\saxon\saxon9-xqj.jar;%CLASSPATH%

REM  ここまで

REM === DITA-OTを実行する ===

set BASE_DIR=%~dp1
set INPUT_FILE=%~f1

echo BASE_DIR = %BASE_DIR%
echo INPUT_FILE = %INPUT_FILE%

java -jar %DITA_DIR%lib/dost.jar /ditadir:%DITA_DIR% /cleantemp:yes /ditaext:%DITA_EXT% /copycss:yes /csspath:css /cssroot:%DITA_DIR%resource /basedir:%BASE_DIR% /i:%INPUT_FILE% /transtype:%2 /outdir:%BASE_DIR%out\%2 /tempdir:%BASE_DIR%temp /xhtmltoc:toc /indexshow:yes

REM === dost.jarの引数の説明 ===
REM
REM /ditadir:         DITA-OTのインストール・フォルダ
REM /cleantemp:       ビルドを実行する前に一次フォルダ(temp)下のファイルを削除するか否か
REM /ditaext:         DITAソース・ファイルの拡張子
REM /css:             カスタマイズ版CSSのファイル
REM /csspath:         cssファイルをコピーするフォルダ(HTMLファイルの出力フォルダが基点)
REM /cssroot:         カスタマイズ版CSSファイルのフォルダ
REM /basedir:         DITAソース・ファイルのフォルダ
REM /i:               ビルド対象のDITAマップ・ファイル(本バッチの第1引数)
REM /transtype:       ドキュメントの出力形式(本バッチの第2引数) 指定可能な値 = xhtml, htmlhelp, pdf2
REM /outdir:          変換結果を出力するフォルダ
REM /tempdir:         一時ファイルを出力するフォルダ
REM /fouserconfig:    XSL-FO変換時のパラメータ
REM /xsl:             カスタマイズ版XSLTスタイルシート
REM /xhtmltoc:        目次のHTMLファイルのファイル名
REM /indexshow:       索引を生成するか否か
REM /artlbl:          グラフィック・ファイルのファイル名を表示するか否か
REM

goto END

:ARG-ERR
echo.
echo 使い方:
echo  build_dita arg1-dita-fname arg2-transtype [arg3-dita-ext]
echo.
echo 引数:
echo  arg1-dita-fname : マップまたはトピックのファイル・パス
echo  arg2-transtype  : xhtml, htmlhelp, pdf
echo  arg3-dita-ext   : DITAトピック・ファイルの拡張子(省略すると、".dita")
goto END

:ENV-ERR
echo 環境変数 DITA-OT が設定されていません。
goto END

:END
set ANT_OPTS=
set CLASSPATH=

REM === 参考 ===
REM
REM ・DITA Open Toolkit による容易なコマンドライン処理
REM     http://www.ibm.com/developerworks/jp/xml/library/x-tipditajavacmd.html?ca=drs-jp
REM
REM ・Processing from the Java command line
REM     http://dita-ot.sourceforge.net/doc/ot-userguide131/xhtml/processing/processing_javacmd.html
REM

3/31 :ENDの後ろに環境変数の値をクリアする命令を追加。これがないと、バッチを実行する度に環境変数の値が長くなる。

このバッチ・ファイルをパスが通った場所に置いておけば、以下のようなコマンドを入力することでDITA-OTを実行できる。

> build_dita arg1-dita-fname arg2-transtype [arg3-dita-ext]

各引数には以下のものを指定する。

  • arg1-dita-fname : マップまたはトピックのファイル・パス
  • arg2-transtype : 出力ファイルのタイプ(xhtml, htmlhelp, pdf)
  • arg3-dita-ext : DITAトピック・ファイルの拡張子(省略すると、".dita")

CSSやXSLスタイル・シートをカスタマイズした場合は、必要に応じてこのバッチ・ファイルの中の、dost.jarのオプションの指定を追加すればよい。