我写了一个 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文档的有效性,你可以使用以下命令行工具:

  1. 它是一个java工具,所以你需要有一个最新的java运行环境。

  2. 工具是精。您可以从 thaiopensource 网站下载它:http://www.thaiopensource.com/relaxng/jing.html

  3. 您还需要 docbook 5.0 的relax ng 文件。它随 docbook 5 发行版一起提供。

  4. 使用以下命令行运行验证测试:
    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 甚至电子书的形式发布。

或者查看 DEP4E 网站, , 阅读 快速入门指南 部分 3.入门, ,了解它的可能性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top