Как сгенерировать pdf из docbook 5.0 - PullRequest
15 голосов
/ 11 апреля 2010

Я написал документ 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">

и docbook2pdf в Ubuntu 9.10 выводит много сообщений об ошибках и не выполняет никаких 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">

работает вполне нормально.

Есть ли способ сгенерировать pdf из docbook 5.0?

Ответы [ 7 ]

32 голосов
/ 18 января 2011

Я вижу три варианта (доступны в Debian / Ubuntu) для создания PDF из docbook:

  • jade, который предоставляет команду docbook2pdf, которую использовал запрашивающий. Jade древний и работает с 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
4 голосов
/ 15 апреля 2010

Помимо заголовка, который вы дали, вы пробовали меньший пример, например, из 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. Можете ли вы привести небольшой пример (или несколько отдельных элементов), содержащий некоторый контент, который делает необходимым использование всех дополнительных пространств имен.

Если приведенный выше пример не работает, и вас интересует, как я настроил свою среду, прочитайте Как сделать содержимое DocBook доступным на сайте проекта Maven Просто замените пример на приведенный выше пример DocBook 5.0. Только docbkx-maven-plugin представляет интерес в связи с этим вопросом. (PS: Для этого требуются некоторые базовые знания Java и Maven2.)

2 голосов
/ 07 декабря 2011

Publican

Вы можете использовать Publican для публикации вашего DocBook XML в форматах PDF, html и html-single.Publican используется Red Hat как часть внутреннего инструментария документации и является приложением с открытым исходным кодом, размещенным в проекте Fedora.Инструмент использует «бренды» для достижения модульности в применении стилей к публикуемому контенту.Это предустановленный способ, использующий широкий спектр инструментов CMS или документации.

Руководство по документации JBoss

Хорошим примером инструмента в действии является документация JBoss Press Gang , которая сама по себе является отличным ресурсом, который дает руководство сообщества по документации по использованиюDocBook XML в документации JBoss.Версии html и PDF были созданы с помощью Publican.

2 голосов
/ 16 апреля 2010

Существуют значительные различия между Docbook 4.5 и 5.0. И эти различия могут помешать преобразованию вашего документа.

Если вы хотите проверить достоверность вашего документа 5.0, вы можете использовать следующий инструмент командной строки:

  1. это java-инструмент, поэтому вам нужна последняя среда исполнения java.

  2. инструмент - Цзин. Вы можете скачать его с веб-сайта thaiopensource: http://www.thaiopensource.com/relaxng/jing.html

  3. вам также понадобится файл relax ng для docbook 5.0. Он поставляется с дистрибутивом 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 миллисекунд

1 голос
/ 30 января 2014

Перейдите в Eclipse и установите Модуль редактирования и обработки DocBook для Eclipse (DEP4E) . Вы можете найти его, зайдя на рынок и найдя там документальную книгу. Этот плагин создаст пример docbook и может публиковать в html, pdf и даже в электронных книгах.

Или посетите веб-сайт DEP4E , прочтите Краткое руководство по началу работы раздел 3. Начало работы , чтобы понять его возможности.

1 голос
/ 15 мая 2011

http://docbookpublishing.com поддерживает документы DocBook 5.0. Это онлайн-сервис для форматирования DocBook в PDF. Вы также можете отправить свои документы DocBook через REST API.

0 голосов
/ 03 января 2012

WordPress для постов в стиле docbook: http://hashfold.com/techfold/wordpress-how-to-generate-docbook-style-posts/

...