- 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 件のコメント:
コメントを投稿