自前コンテンツをPDF化する(アルファベット圏の言語で書くなら,これでOK).

無事にデモコンテンツが出来上がったので,次は自前コンテンツのPDF化に挑む.例題を作った.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd" >
<concept id="concept-test.dita" xml:lang="ja-JP">
  <title>テストなの</title>
  <conbody>
    <p>
やはりテストは大事である.
私はいきなり納品文書をDITAで書き始めるという無謀をして方々に迷惑をかけまくった.
亥年生まれの牡羊座はあまり深いことを考えずに突進するものなのだ.
    </p>
  </conbody>
</concept>

<!-- /Users/monaka/concept-test.xml -->

XMLファイルの内容についてのツッコミは無用である.

上記XMLが,トピックのうちコンセプトと呼ばれるフォーマットに合わせたもの.今回は一つだが,本当はこの手のトピックを溜め込んで行く.
トピックはマップで纏める.MicrosoftHTMLHELPや,EclipseEclipse Help,JavaのJavaHelpなど作ったことがある人なら,まあそんなものかと思うだろう.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN"
 "dtd/map.dtd">
<map title="Test">
	<topicref href="concept-test.dita" type="concept"/>
</map>

<!-- /Users/monaka/test.ditamap -->

ここでものすごく大事な情報.マップファイルの拡張子は ditamap にしなければいけないらしい.そんな記述は見当たらなかったのだけれども.
ここでxmlなど別の拡張子を使うと,エラーは出ないが,生成されるコンテンツには何も含まれない*1.インストール直後にそんな訳判らん状態になったら,泣きそうになるのは間違いない.ていうか泣きそうになりました.

ビルドはコマンドラインが便利

DITA-OT の使い方を調べると build.xml を書かなければいけないような気になってくるが,実はコマンドラインでも作れる*2
アプリケーションのビルドと同時にビルドしたいとか,文書の継続的ビルドをやるつもりでもなければ,むしろコマンドラインを奨めたい.


一行が長くなるので,classpathは先に設定しておこう.

$ export CLASSPATH=/opt/DITA-OT1.4.2.1/lib/dost.jar:/opt/DITA-OT1.4.2.1/lib/resolver.jar:/opt/DITA-OT1.4.2.1/lib/fop.jar:/opt/DITA-OT1.4.2.1/lib/saxon.jar

あとは,下記のようにして実行する.もちろん,pathは適当に合わせ込む.

$ java -jar /opt/DITA-OT1.4.2.1/lib/dost.jar /ditadir:/opt/DITA-OT1.4.2.1 /basedir:/Users/monaka/dita-test /i:/Users/monaka/dita-test/test.ditamap  /transtype:pdf /ditaext:dita /draft:yes

コマンドライン実行でも,内部ではantを呼んでいるようなので,antのインストールは必要.

Build XSL-FO output from ditamap...
Build PDF from FO using FOP...
Processing ended.

BUILD SUCCESSFUL
Number of Fatals : 0
Number of Errors : 0
Number of Warnings : 0

Total time: 3 seconds
Log file 'test_pdf.log' was generated successfully in directory '/Users/monaka/dita-test/out'.

この程度のPDFなら,数秒でビルドが完了する.マップのファイル名が test.ditamap だったので, PDFのファイル名は test.pdf.生成される場所は,上記のとおりに実行した場合は /Users/monaka/dita-test/out となる.この辺についてはコマンドラインである程度カスタマイズできる.詳細は割愛.

######

早速 PDF を開いてみる.しおりは日本語化される.

よしよし.
しかし…

本文は ##### の嵐.日本語フォントの問題かよ.


つかえねぇ….



続く.

*1:PDFの場合は最低限の雛形しか出ない

*2:この辺の詳細はIBMのdwにある和訳記事を参照