Чтение онлайн

ЖАНРЫ

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

Шрифт:

• 

break-after
;

• 

break-before
;

• 

color
;

• 

font-height-override-after
;

• 

font-height-override-before
;

• 

hyphenation-keep
;

• 

hyphenation-ladder-count
;

• 

id
;

• 

keep-together
;

• 

keep-with-next
;

• 

keep-with-previous
;

• 

last-line-end-indent
;

• 

linefeed-treatment
;

• 

line-height
;

• 

line-height-shift-adjustment
;

• 

line-stacking-strategy
;

• 

orphans
;

• 

relative-position
;

• 

space-treatment
;

• 

span
;

• 

text-align
;

• 

text-align-last
;

• 

text-indent
;

• 

visibility
;

• 

white-space-collapse
;

• 

widows
;

• 

wrap-option
;

• 

z-index
.

Например,

я могу добавить в документ заголовок «The Planets Table» (Таблица планет), задав шрифт
Times
(в данный момент fop поставляется с встроенными шрифтами
Times
,
Helvetica
,
Courier
,
Symbol
,
sans-serif
,
serif
и
ZapfDingbats
) в свойстве
font-family
, размер шрифта 36 пунктов в свойстве
font-size
и полужирный стиль, установив свойство
font-weight
в «
bold
». Высоту блока я задам при помощи свойства
line-height
и покажу заголовок голубым при помощи свойства
color
:

<?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">

 <xsl:template match="PLANETS">

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

<fo:layout-master-set>

.

.

.

</fo:layout-master-set>

<fo:page-sequence master-name="page">

<fo:flow flow-name="xsl-region-body">

<fo:block font-weight="bold" font-size="36pt"

line-height="48pt" font-family="Times" color="blue">

The Planets Table

</fo:block>

<xsl:apply-templates/>

</fo:flow>

</fo:page-sequence>

.

.

.

Этот код создаст блок заголовка, который показан в верхней части текста на рис. 11.1. Таким способом я могу создать аналогичные блоки

для каждого элемента данных каждой планеты при помощи таблицы стилей XSLT. Заметьте также, что я вывожу имя каждой планеты курсивом, установив свойство
font-style
в «italic», и я подчеркиваю остальной текст при помощи свойства
text-decoration
элементов
<fo:inline>
, которые мы рассмотрим в следующей главе:

<?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">

 <xsl:template match="PLANETS">

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

<fo:layout-master-set>

.

.

.

</fo:layout-master-set>

<fo:page-sequence master-name="page">

.

.

.

</fo:page-sequence>

</fo:root>

 </xsl:template>

 <xsl:template match="PLANET/NAME">

<fo:block font-weight="bold" font-size="28pt"

line-height="48pt" font-family="Times" font-style="italiс">

Planet:

<xsl:apply-templates/>

</fo:block>

 </xsl:template>

 <xsl:template match="PLANET/MASS">

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

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

Mass

</fo:inline>:

<xsl:apply-templates/>

[Earth = 1]

</fo:block>

 </xsl:template>

 .

 .

 .

</xsl:stylesheet>

Вот и все. Вы создали свое первое преобразование из XML в XSL-FO, преобразовав

planets.xml
в
planets.fo
. Процессор fop создаст из
planets.fo
файл
planets.pdf
, и вы можете вернуться к рис. 11.1 и посмотреть на результат.

Это преобразование форматировало данные в

planets.xml
и отображало их в блоках, одно за другим. С другой стороны, в предыдущих главах мы видели данные планет в виде таблицы. Можно ли это сделать в XSL-FO? Никаких проблем.

Поделиться с друзьями: