Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

<fo:block font-family="Times" line-height="32pt" font-size="24pt">

<fo:inline text-decoration="underline">

Day

</fo:inline>:

1

[Earth = 1]

</fo:block>

<fo:block font-family="Times" line-height="32pt" font-size="24pt">

<fo:inline text-decoration="underline">

Radius

</fo:inline>:

2107

miles

</fo:block>

<fo:block font-family="Times" line-height="32pt" font-size="24pt">

<fo:inline text-decoration="underline">

Density

</fo:inline>:

1

[Earth = 1]

</fo:block>

<fo:block font-family=Times" line-height="32pt" font-size="24pt">

<fo:inline text-decoration="underline">

Distance

</fo:inline>:

128.4

million miles

</fo:block>

</fo:flow>

</fo:page-sequence>

</fo:root>

Для того чтобы обработать

planets.fo
и создать форматированный документ, я воспользуюсь процессором fop от Apache XML Project. Как утверждает Apache: «FOP — первое в мире средство форматирования, управляемое форматирующими объектами XSL. Приложение Java считывает дерево форматирующих объектов и затем преобразует его в документ PDF. Дерево форматирующих объектов может быть представлено в форме документа XML (полученного на выходе такого процессора XSLT, как XT или Xalan) или может быть передано в память как документ DOM или (в случае XT) событий SAX».

Я пользуюсь fop 0.17, — последней версией процессора на момент написания книги (похоже, что новые версии выходят практически ежемесячно). Процессор fop можно бесплатно загрузить сПакет загрузки fop включает три необходимых для работы файла JAR:

fop.jar
,
w3c.jar
и
xerces.jar
, которые нужно включить в
classpath
(добавьте правильные пути к этим файлам JAR в соответствии с требованиями вашей системы):

С:\>set classpath=.;fop.jar;xerces.jar;w3c.jar

Для преобразования

planets.fo
в
planets.pdf
служит класс fop
org.apache.fop.apps.CommandLine
, которому в командной строке нужно передать имя входного документа,
planets.fo
, и имя выходного,
planets.pdf
:

C:\>java org.apache.fop.apps.CommandLine planets.fo planets.pdf

Вот и все; окончательный результат,

planets.pdf
, в средстве просмотра Adobe Acrobat Reader вы увидите, если вернетесь к рис. 11.1.

Теперь вы видели, как выполняется процедура в общем; давайте перейдем к деталям и посмотрим, как создаются документы XSL-FO. Чтобы подробно все рассмотреть, я собираюсь взять за основу листинг 11.2, таблицу стилей XSLT, создающую

planets.fo
.

СОЗДАНИЕ ДОКУМЕНТОВ XSL-FO С НУЛЯ

Заметьте, что не обязательно создавать таблицу стилей для преобразования документов XSL в форму XSL-FO. Я мог бы написать planets.fo так, как показано в листинге 11.3, с нуля, не прибегая к таблицам стилей XSLT. Но такой способ, как правило, годится только для коротких документов XML. Документы с форматированием XSL-FO становятся весьма длинными очень быстро (сравните длину planets.xml с planets.fo), поэтому для создания документов XSL-FO практически всегда применяйте таблицы стилей XSLT (хотя некоторые примеры в следующей главе достаточно коротки для того, чтобы написать их непосредственно при помощи XSL-FO).

Создание корня документа: <fo:root>

Первый форматирующий документ, который мы рассмотрим, — это

<fo:root>
, узел документа любого документа XSL-FO.

Детьми форматирующего объекта

<fo:root>
являются единственный форматирующий объект
<fo:layout-master-set>
и последовательность из одного или нескольких элементов
<fo:page-sequence>
. Форматирующий объект
<fo:layout-master-set>
содержит все используемые в документе шаблоны, при помощи которых вы управляете созданием каждой страницы. Каждый объект
<fo:page-sequence>
представляет собой последовательность страниц, отформатированных нужных вам способом. Например, каждая глава в книге может быть сформирована из своей собственной последовательности страниц, и каждой последовательности страниц вы можете задать одни и те же верхний и нижний колонтитулы: «Глава 5: Незнакомец появляется снова».

На первом шаге в таблице стилей XSLT, преобразующей

planets.xml
, я выбираю узел документа
<PLANETS>
и заменяю его на элемент
<fo:root>
, объявляющий префикс пространства имен «
fo
»:

<?xml version="1.0"?>

<xsl:stylesheet

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:fo="http://www.w3.org/1999/XSL/Format"

 version="1.0">

  • Читать дальше
  • 1
  • ...
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: