- DocBook の XML から fo ファイルを生成する
- Apache FOP を使って fo から PDF を生成する
DocBook → fo
Example: 原稿 (sample.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" >
<article>
<title>DocBook sample</title>
<articleinfo>
<author>
<firstname>Hoge</firstname>
<surname>Fuga</surname>
</author>
<copyright>
<year>2009</year>
</copyright>
</articleinfo>
<sect1><title>Hello World</title><para>Hello World</para></sect1>
<sect1>
<title>日本語テスト</title>
<para>日本語が正しく表示されますか?</para>
</sect1>
<sect1>
<title>hoge</title>
<para>hello</para>
<sect2>
<title>hoge2</title>
<para>hogehoge</para>
</sect2>
</sect1>
</article>
Example: fo を生成するための xsl ファイル (sample_fo.xsl)
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version='1.0'>
<xsl:import href="../docbook-xsl-1.75.0/fo/docbook.xsl"/>
<xsl:output method="fo" encoding="UTF-8" indent="yes"/>
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="default.encoding" select="'UTF-8'"/>
<xsl:param name="paper.type" select="'A4'"/>
<xsl:param name="draft.mode" select="'no'"/>
<xsl:param name="hyphenate">false</xsl:param>
<xsl:param name="callout.graphics.extension" select="'.gif'"/>
<xsl:param name="title.font.family" select="'Meiryo'"/>
<xsl:param name="body.font.family" select="'Meiryo'"/>
<xsl:param name="sans.font.family" select="'Meiryo'"/>
<xsl:param name="monospace.font.family" select="'Meiryo'"/>
</xsl:stylesheet>
fo を生成するためのルールを build.xml に記述Example: build.xml
<project name="docbooktest" basedir="." default="xslt">
<property name="DOCBOOK_DTD" value="../docbook-xml-4.5/docbookx.dtd"/>
<property name="DOCBOOK_PUBLIC_ID" value="-//OASIS//DTD DocBook XML V4.5//EN"/>
<property name="LIBDIR" value="../xalan-j_2_7_1/build"/>
<target name="fo">
<xslt basedir="${basedir}"
destdir="${basedir}"
style="sample_fo.xsl"
extension=".fo"
includes="sample.xml">
<classpath>
<pathelement location="${LIBDIR}/xalan.jar"/>
</classpath>
<xmlcatalog>
<dtd publicId="${DOCBOOK_PUBLIC_ID}"
location="${DOCBOOK_DTD}"/>
</xmlcatalog>
</xslt>
</target>
</project>
Ant を実行して fo ファイルを生成する
> ant fo
0 件のコメント:
コメントを投稿