跳转到内容

XQuery/DocBook 到 PDF

来自维基教科书,开放的书籍,开放的世界

您希望将您的 DocBook 5 文件转换为 PDF 格式。PDF 是一种标准化的页面布局格式,允许您使用标准打印书籍。

我们将创建一个 XQuery 模块,其中包含针对 DocBook 每个主要元素的一个主要 TypeSwitch 语句。这将创建一个 XSL-FO 文件,然后可以使用 Apache-FO 1.0 处理器 直接将其转换为 PDF。

这将完全使用 XQuery 完成。不需要 XSLT。

示例输入文档

[编辑 | 编辑源代码]

我们将从一个简单的 DocBook 5 文档开始。该文档使用 DocBook 命名空间并包含 xlink 命名空间。文档的非常小的示例可能具有以下结构

<book xmlns="http://docbook.org/ns/docbook"
    xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
    <info>
        <title>Converting DocBook to PDF using XQuery</title>
        <author>
            <orgname>Kelly McCreary &amp; Associates</orgname>
            <address>
                <city>Minneapolis</city>
                <country>USA</country>
            </address>
            <email>[email protected]</email>
        </author>
    </info>
    <part>
        <title>Introduction</title>
        <subtitle>Why DocBook and PDF</subtitle>
        <chapter>
            <title>Introduction to DocBook</title>
            <subtitle>Getting Started with DocBook Version</subtitle>
            <sect1>
                <title>Page Layout vs. Scrolling HTML</title>
                <subtitle>Why PDF is Used For Printing</subtitle>
                <para>Printing and pagination will still be important till ePub becomes standardized.</para>
            </sect1>
        </chapter>
        <chapter>
            <title>XQuery Typeswitch Transforms</title>
            <subtitle>How To Get Comfortable with Recursive Programs</subtitle>
            <sect1>
                <title>Why XQuery Can Replace XSLT</title>
                <subtitle>One language for the server</subtitle>
                <para>Text</para>
            </sect1>
            <sect1>
                <title>XSL-FO</title>
                <subtitle>A language for paginated layout</subtitle>
                <para>Text</para>
            </sect1>
        </chapter>
    </part>
</book>
华夏公益教科书