如何从 docbook 5.0 生成 pdf
题
我写了一个 docbook 5.0 文档,标题为:
<?xml version="1.0" encoding="UTF-8"?>
<book version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
Ubuntu 9.10 上的 docbook2pdf 打印许多错误消息并且不执行任何 pdf 文档。错误是:
openjade:test.xml:2:0:E: prolog can't be omitted unless CONCUR NO and LINK EXPLICIT NO and either IMPLYDEF ELEMENT YES or IMPLYDEF DOCTYPE YES
openjade:test.xml:2:0:E: no document type declaration; will parse without validation
openjade:/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/dbtitle.dsl:18:5:E: flow objects at the root must be all of class scroll or all of class page-sequence or simple-page-sequence
openjade:/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/dbbibl.dsl:704:4:E: flow objects at the root must be all of class scroll or all of class page-sequence or simple-page-sequence
docbook2pdf 用于 docbook 4.5 格式的文档,具有正常标题,例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
工作得很好。
有没有办法从 docbook 5.0 生成 pdf?
解决方案
我看到从 docbook 生成 pdf 的三个选项(在 Debian/Ubuntu 中可用):
jade,它提供了提问者使用的 docbook2pdf 命令。jade 很古老,并且与 SGML 一起使用,SGML 早于 XML 并且不支持 Unicode;它还缺乏对 docbook 5 的支持。
这 docbook-xsl 样式表 它通过 XSL-FO。docbook-xsl 适用于 docbook 4.5,docbook-xsl-ns 适用于 docbook5。使用 fop 从 XSL-FO 转换为 PDF。管道:docbook5 —(xsl)—> xml.fo —(fop)—> pdf 。涉及的命令:xsltproc,fop。
dblatex,主要针对 docbook4.5,但已针对 docbook5 的某些内容进行了更新。
xmlto 可以驱动后两个,尽管它当前默认为 docbook-xsl 而不是 docbook-xsl-ns。
Docbook5 快速用户指南
先决条件
sudo aptitude install docbook5 docbook-xsl-ns xsltproc fop xmlto libxml2-utils xmlstarlet
验证
xmlstarlet val --err --xsd /usr/share/xml/docbook/schema/xsd/5.0/docbook.xsd book.xml
PDF输出
xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl book.xml > book.fo
fop -fo book.fo -pdf book.pdf
其他提示
除了你给的头,你尝试更小的例子,像这样从的 DocBook的5.0:权威指南
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns='http://docbook.org/ns/docbook'>
<title>An Example Book</title>
<titleabbrev>Example</titleabbrev>
<info>
<legalnotice><para>No notice is required.</para></legalnotice>
<author><personname>
<firstname>Norman</firstname><surname>Walsh</surname>
</personname></author>
</info>
<dedication>
<para>
This book is dedicated to you.
</para>
</dedication>
<preface>
<title>Foreword</title>
<para>
Some content is always required.
</para>
</preface>
<chapter>
<title>A Chapter</title>
<para>
Content is required in chapters too.
</para>
</chapter>
<appendix>
<title>Optional Appendix</title>
<para>
Appendixes are optional.
</para>
</appendix>
</book>
只要将它渲染到PDF通过我的Maven的环境之一。你可以得到含有一些内容,这使得使用所有必要的附加的名字空间的一个小例子(或几个分开的onces)。
如果上面的例子不工作,你有兴趣我怎么也设置我的阅读环境的制作在一个Maven项目现场使用 DocBook的内容。只需更换与上述的DocBook 5.0例子的例子。只有docbkx-maven-plugin
感兴趣,关于这个问题。 (PS:需要Java和Maven2的的一些基本知识此)
税吏
您可以使用税吏发布你的DocBook XML的PDF,HTML,和HTML单格式。 Publican是使用红帽作为其内部文档工具链的一部分,是由Fedora项目的一个开源应用程序。该工具使用“品牌”正在发布应用样式到内容,实现了模块化。此预设方式simusing各种各样的CMS或文档工具。
的JBoss文档指南
在动作工具的一个很好的例子是的JBoss按刚文档,这本身就是一个巨大的资源上的JBoss文档中使用的DocBook XML的文档提供了指导社区。与税吏中生成的HTML和PDF版本。
Docbook 4.5 和 5.0 之间存在显着差异。这些差异可能会阻止您的文档被转换。
如果你想检查你的5.0文档的有效性,你可以使用以下命令行工具:
它是一个java工具,所以你需要有一个最新的java运行环境。
工具是精。您可以从 thaiopensource 网站下载它:http://www.thaiopensource.com/relaxng/jing.html
您还需要 docbook 5.0 的relax ng 文件。它随 docbook 5 发行版一起提供。
使用以下命令行运行验证测试:
java -jar path_to_Jing/jing.jar -t -i path_to_docbook5/docbook.rng document.xml
如果有一些失败,应该以这种方式返回:URL“file:...../document.xml”错误,第 211 行,第 59 列:命名空间“中的属性“id”的值错误http://www.w3.org/XML/1998/namespace“过去的时间968+166 = 1134毫秒
http://docbookpublishing.com 支持的DocBook 5.0文档。它是DocBook的在线服务为PDF格式。您也可以通过REST API提交您的DocBook文档。
进入Eclipse并安装 DocBook 编辑和处理 Eclipse (DEP4E) 插件. 。您可以通过进入市场并在那里搜索文档来找到它。该插件将创建一个示例文档书,并可以以 html、pdf 甚至电子书的形式发布。
WordPress邮寄了DocBook风格的帖子: http://hashfold.com/techfold/wordpress-how-到生成-的DocBook式-帖/