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

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

Шрифт:

Процессор fop работает с документами XSL-FO, и в этой и следующей главах я воспользуюсь XSLT для преобразования документов XML в формат XSL-FO и затем применю fop для преобразования документов XSL-FO в формат PDF. (Применение XSL-FO не означает, что обязательно будут создаваться документы PDF — существуют и другие форматы, — XSL-FO просто позволяет вам форматировать данные, а то, как эти форматированные данные будут представлены, зависит от используемого приложения.) Для работы с XSL-FO необходимо понимать, как работать с существующими форматирующими объектами XSL.

Форматирующие объекты XSL-FO

В документах XSLT мы работали с такими элементами, как

<xsl:stylesheet>
,
<xsl:output>
и т.д.:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="*">

<xsl:copy>

<xsl:apply-templates/>

.

.

.

Документ XSL-FO написан во многом таким же способом, но вместо таких элементов XSLT, как

<xsl:stylesheet>
, применяются элементы, основанные на форматирующих объектах XSL-FO. Существует всего 56 таких форматирующих объектов — например, объект корня, создающий корневой узел документа XSL-FO, или объект блока, создающий область блока (прямоугольную область отображения, похожую на область, которую тег заголовка <Н1> создает в документе HTML).

У форматирующих объектов есть свое собственное пространство имен, «http://www.w3.org/1999/XSL/Format», и в качестве префикса этого пространства имен практически всегда используется fo, сокращение для formatting objects. (Это соглашение было принято потому, что данный префикс пространства имен используется в спецификации XSL.) При написании документов XSL-FO используются элементы, соответствующие различным объектам XSL-FO — например,

<fo:root>
для корневого элемента,
<fo:block>
для создания блока отображения и т.д. Вот как можно начать документ XSL-FO — заметьте, что я объявляю префикс пространства имен «
fo
», соответствующий пространству имен XSL-FO:

<?xml version="1.0" encoding="UTF-8"?>

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

 <fо:layout-master-set>

<fo:simple-page-master margin-right="20mm" margin-left="20mm"

margin-bottom="10mm" margin-top="10mm" page-width="300mm"

page-height="400mm" master-name="page">

<fo:region-body margin-right="0mm" margin-left="0mm"

margin-bottom="10mm" margin-top="0mm"/>

.

.

.

Обратите внимание: документы; XSL-FO являются документами XML, поэтому везде можно использовать стандартные комментарии XML,

<!-- такие как этот -->
. Отметьте также, что элементы
<fo:simple-page-master>
и
<fo:region-body>
обладают такими атрибутами, как
margin-right
и
page-height
. В XSL-FO такие атрибуты называются свойствами, и их весьма много — на момент написания книги около 240. Например, вот как можно создать блок XSL-FO — прямоугольную область отображения — в котором выводится текст «Welcome to XSL formatting» (Добро пожаловать в форматирование XSL) шрифтом
sans-serif
размером 36 пунктов. Я использую форматирующий объект
<fo:block>
и свойства XSL-FO
font-family
—
line-height
(задающее высоту блока) и
font-size
:

<fo:block font-family="sans-serif" line-height="48pt" font-size="36pt">

 Welcome to XSL formatting

</fo:block>

В этом разделе мы рассмотрим объекты XSL-FO, а в следующем — свойства XSL-FO для работы с ними. При помощи объектов и свойств XSL-FO вы можете создавать документы XSL-FO, которым обычно дается расширение

.fo
. Процессор fop преобразует такие документы в формат
.pdf
.

Все форматирующие объекты XSL-FO с описанием перечислены на www.w3.org/TR/xsl/slice6.html. Во время создания книги существуют такие объекты (с работой многих из них мы познакомимся в этой и следующей главах):

• 

<fo:bidi-override>
. Перекрывает двунаправленный алгоритм Unicode (этот алгоритм используется в документах на нескольких языках);

• 

<fo:block>
. Создает блок отображения для формирования прямоугольных областей, используемых при выводе абзацев, заголовков, подписей к рисункам и таблицам и т.д.;

• 

<fo:block-container>
. Создает контейнер блоков, который затем можно помещать в любом месте;

• 

<fo:character>
. Представляет единственный символ;

  • Читать дальше
  • 1
  • ...
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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