我写了一个带有标题的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 for 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?
答案 0 :(得分:32)
我看到三个选项(在Debian / Ubuntu中可用)从docbook生成pdf:
jade,它提供了asker使用的docbook2pdf命令。 jade很古老,可以使用SGML,它早于XML,不支持Unicode;它也缺乏对docbook 5的支持。
通过XSL-FO的docbook-xsl stylesheets。 docbook-xsl适用于docbook 4.5,docbook-xsl-ns适用于docbook5。使用fop从XSL-FO转到PDF。管道:docbook5 - (xsl) - &gt; xml.fo - (fop) - &gt; pdf。涉及的命令:xsltproc,fop。
dblatex,主要针对docbook4.5,但已针对某些docbook5进行了更新。
xmlto可以驱动最后两个,虽然它当前默认为docbook-xsl而不是docbook-xsl-ns。
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
xsltproc /usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl book.xml > book.fo
fop -fo book.fo -pdf book.pdf
答案 1 :(得分:4)
除了您提供的标题之外,您是否尝试了一个较小的示例,例如DocBook 5.0: The Definitive Guide中的这个示例?
<?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>
通过我的一个Maven环境将其渲染为PDF。你能给出一个包含一些内容的小例子(或几个单独的onces),这样就可以使用所有额外的名字空间。
如果以上示例不起作用,并且您对如何设置我的环境感兴趣,请阅读Making DocBook content available in a Maven project site。只需用上面的DocBook 5.0示例替换该示例。对于这个问题,只有docbkx-maven-plugin
是有意义的。 (PS:这需要Java和Maven2的一些基本知识。)
答案 2 :(得分:2)
Docbook 4.5和5.0之间存在显着差异。这些差异可能会阻止您的文档被转换。
如果要检查5.0文档的有效性,可以使用以下命令行工具:
这是一个java工具,所以你需要有一个最近的java运行时环境。
这个工具是Jing。您可以从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毫秒
答案 3 :(得分:2)
您可以使用Publican以PDF,html和html单格式发布DocBook XML。 Redan将Publican用作其内部文档工具链的一部分,并且是由Fedora项目托管的开源应用程序。该工具使用“品牌”来实现将样式应用于正在发布的内容的模块化。这种预设方式可以模拟各种CMS或文档工具。
该工具的一个很好的例子是JBoss Press Gang documentation,它本身就是一个很好的资源,它提供了有关在JBoss文档中使用DocBook XML的文档社区指南。 html和PDF版本是使用Publican生成的。
答案 4 :(得分:1)
http://docbookpublishing.com支持DocBook 5.0文档。它是DocBook到PDF格式的在线服务。您还可以通过REST API提交DocBook文档。
答案 5 :(得分:1)
转到Eclipse并安装DocBook Editing and Processing for Eclipse (DEP4E) plugin。您可以通过进入市场并在那里搜索docbook来找到它。这个插件将创建一个示例docbook,并可以发布html,pdf,甚至电子书。
或查看DEP4E web site,阅读Quick Starter Guide部分 3。入门,了解它的可能性。
答案 6 :(得分:0)
wordpress发布到docbook样式帖子: http://hashfold.com/techfold/wordpress-how-to-generate-docbook-style-posts/