Форматирующие свойства XSL-FO
Форматирующие свойства XSL-FO
Форматирующие свойства XSL-FO настраивают действия перечисленных в предыдущем разделе форматирующих объектов; работайте с ними в документах XSL-FO так же, как с атрибутами элементов. Например, вот как я установил семейство (family), размер (size) и насыщенность (weight;) шрифта для текста в блоке:
<fo:block color="blue" font-family="Times"
font-size="36pt" font-weight="bold">
Hello from XSL-FO!
</fo:block>
Полный список свойств XSL-FO и их описание можно найти по адресу www.w3.org/TR/xsl/slice7.html. Многие свойства XSL-FO унаследованы из спецификации для каскадных таблиц стилей версии 2, CSS2, которую вы можете найти по адресу www.w3.org/TR/REC-CSS2.
В следующем списке перечислен ряд наиболее распространенных свойств XSL-FO. Полный список свойств (весьма длинный) приведен в Приложении Б. В списке используется следующий синтаксис, соответствующий спецификации XSL-FO:
• <> обозначает единицы значений (см. таблицу 11.1) или свойства (например, <color>), которые уже были определены;
• | означает вариант выбора, использовать можно только один из них;
• || означает вариант выбора, можно использовать один или несколько вариантов в любом порядке;
• [] означает групповые инструкции, вычисляемые во многом так же, как и математические выражения;
• * означает, что предыдущий терм может встречаться ноль или более раз;
• + означает, что предыдущий терм может встречаться один или более раз;
• ? означает, что предыдущий терм необязателен;
• {} окружают пары чисел, задающие минимальное и максимальное число раз встречи терма (как в {1, 4});
Во многих свойствах XSL-FO определен определенный формат для присваиваемых им значений, как, например <color> или <angle>, — эти форматы и их описание перечислены в табл. 11.1.
Таблица 11.1. Форматы спецификации XSL-FO
Формат Описание <absolute-size> Абсолютные размеры шрифта; могут быть xx-small, x-small, small (маленький), medium (средний), large (крупный), x-large, xx-large <angle> Углы; могут измеряться в deg (градусах), grad (градах) или rad (радианах) idctlpar<border-style> Граница прямоугольника, может принимать значения none (нет), dotted (пунктиром), dashed (штрихами), solid (непрерывная), double (двойная), groove (канавкой), ridge (с толстой кромкой), inset (вложенная) или outset (вынесенная) <border-width> Устанавливает ширину границы; может принимать значения thin (тонкая), medium (средняя), thick (толстая) или конкретного размера <color> Цвет; может быть задан предопределенным значением цвета или тройным цветовым значением RGB, как в HTML, — например, «FFFFFF» для белого цвета <country-language> Устанавливается в значение <language> (см. <language>) <family-name> Название семейства шрифтов — такого, как Arial, Times New Roman или Courier <frequency> Значения частоты; единицами измерения могут быть Hz (Гц) или KHz (кГц) <generic-family> Обобщенные названия шрифтов, применяемых в качестве последней попытки, если браузер не может найти определенный шрифт. Например, serif (браузер должен выбрать шрифт serif), sans-serif (браузер должен выбрать семейство sans-serif) и monospace (браузер должен выбрать моноширинный шрифт) <generic-voice> Звук голоса; может быть male (мужской), female (женский) или child (детский) <integer> Стандартные целые значения <keep> Контекстно-зависимое свойство; принимает значение Auto, для того чтобы не удерживать вместе ограничения, или Always для жесткого удержания ограничений вместе. Дополнительная информация приведена в спецификации XSL <language> Определитель языка, соответствующий спецификации RFC1766 (которую можно найти по адресу www.w3.org/TR/xsl/sliceD.html#RFC1766) <length> Длина; может начинаться с + или -, за которыми следует число. Число может содержать десятичную точку, за которой следует идентификатор единиц, принимающий значения em (размер шрифта соответствующего шрифта), ex (x-height, высота шрифта), рх (пикселов, pixel, определяется устройством просмотра), pt (пунктов, point, 1/72 дюйма), in (дюймов, inch), cm (сантиметров), mm (миллиметров) или pc (пик, pica, 1/6 дюйма) <length-bp-ip-direction> Задает расстояние, разделяющее смежные границы ячейки в направлении размещения строк. Дополнительная информация приведена на www.w3.org/TR/xsl/slice7.html <length-conditional> Составное значение, задающее ширину и возможный тип передней границы. Дополнительная информация приведена на www.w3.org/TR/xsl/slice7.html#pr-section <length-range> Определяет диапазон длины, как определено в спецификации XSL <margin-width> Может принимать значения <length>, <percentage> или auto. Работа значения auto зависит от контекста, подробности приведены на www.w3.org/TR/REC-CSS2/visudet.html#Computing_widths_and_margins <number> Число, может включать знак и десятичную точку <padding-width> Устанавливается в значение <length> <percentage> Число, которое может содержать знак, за которым следует знак процента (%) <relative-size> Размер шрифта относительно родительского элемента, может быть Larger (больше) или Smaller (меньше) <shape> Пока может задавать только прямоугольник (shape — фигура), как, например: rect(<top> <right> <bottom> <left>) <space> Задает минимальное, оптимальное и максимальное значения для пробела. Подробности см. на www.W3.org/TR/xsl/slice4.html#spacecond <specific-voice> Задает определенный голос. Подробности см. на www.w3.org/TR/REC-CSS2/aural.html#propdef-voice-family <time> Единицы времени, указанные как число, за которым сразу же следует ms (миллисекунды) или s (секунды) <uri-specification> Uniform Resource Indicator (URI); web-адрес элемента страницы такого, как рисунокПримите также к сведению, что свойства XSL-FO, как и свойства CSS2, могут принимать значение «inherit», что означает, что значение свойства должно быть унаследовано от его родительского элемента.
В следующем списке перечислены наиболее распространенные свойства XSL-FO. Полный список приведен в Приложении Б.
• absolute-position. Определяет, является ли позиция элемента абсолютной. Устанавливается в auto | absolute | fixed | inherit;
• background. Свойство для быстрой установки сразу всех отдельных свойств заднего фона (background-color, background-image, background-repeat, background-attachment и background-position). Устанавливается в [ <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position> ] | inherit ;
• background-attachment. Определяет, будет ли прокручиваться задний фон. Устанавливается в scroll | fixed | inherit;
• background-color. Задает цвет заднего фона элемента. Устанавливается в <color> | transparent | inherit;
• background-image. Задает рисунок заднего фона элемента. Устанавливается в <uri-specification> | none | inherit;
• background-repeat. Определяет, может ли рисунок заднего фона располагаться мозаикой, и если да, то каким образом. Устанавливается в repeat | repeat-x | repeat-y | no-repeat | inherit;
• border. Свойство для быстрой установки одинаковых ширины, цвета и стиля всех четырех границ (верхней, нижней, левой и правой) прямоугольника. Устанавливается в [ <border-width> || <border-style> || <color> ] | inherit;
• border-after-color. Задает цвет задней границы области. Устанавливается в <color> | inherit;
• border-after-style. Задает стиль задней границы. Устанавливается в <border- style> | inherit;
• border-after-width. Задает ширину задней границы. Устанавливается в <border-width> | <length-conditional> | inherit;
• border-before-color. Задает цвет передней границы. Устанавливается в <color> | inherit;
• border-before-style. Задает стиль передней границы. Устанавливается в <border-style> | inherit;
• border-before-width. Задает ширину передней границы. Устанавливается в <border-width> | <length-conditional> | inherit;
• border-bottom. Свойство для быстрой установки ширины, стиля и цвета нижней границы области блока или встроенной области. Устанавливается в [ <border-top-width> || <border-style> || <color> ] | inherit;
• border-bottom-color. Задает цвет нижней границы. Устанавливается в <color> | inherit;
• border-bottom-style. Задает стиль нижней границы. Устанавливается в <border-style> | inherit;
• border-bottom-width. Задает ширину нижней границы. Устанавливается в <border-width> | inherit;
• border-collapse. Задает модель границы таблицы. Устанавливается в collapse | separate | inherit;
• border-color. Задает цвет сразу всех четырех границ. Устанавливается в <color>{1,4} | transparent | inherit;
• border-end-color. Задает цвет конечной границы. Устанавливается в <color> | inherit;
• border-end-style. Задает стиль конечной границы. Устанавливается в <border-style> | inherit;
• border-end-width. Задает ширину конечной границы. Устанавливается в <border-width> | <length-conditional> | inherit;
• border-left. Свойство для быстрой установки одновременно ширины, стиля и цвета левой границы. Устанавливается в [ <border-top-width> || <border-style> || <color> ] | inherit;
• border-left-color. Задает цвет левой границы. Устанавливается в <color> | inherit;
• border-left-style. Задает стиль левой границы. Устанавливается в <border-style> | inherit;
• border-left-width. Задает ширину левой границы. Устанавливается в <border-width> | inherit;
• border-right. Свойство для быстрой установки одновременно ширины, стиля и цвета правой границы. Устанавливается в [ <border-top-width> || <border-style> || <color> ] | inherit;
• border-right-color. Задает цвет правой границы. Устанавливается в <color> | inherit;
• border-right-style. Задает стиль правой границы. Устанавливается в <border-style> | inherit;
• border-right-width. Задает ширину правой границы. Устанавливается в <border-width> | inherit;
• border-spacing. Задает расстояние между смежными границами ячейки. Устанавливается в <length> <length>? | inherit;
• border-start-color. Задает цвет начальной границы. Устанавливается в <color>;
• border-start-style. Задает стиль начальной границы. Устанавливается в <border-style> | inherit;
• border-start-width. Задает ширину начальной границы. Устанавливается в <border-width> | <length-conditional> | inherit;
• border-style. Задает стиль четырех границ. Устанавливается в <border-style> {1,4} | inherit;
• border-top. Свойство для быстрой установки одновременно ширины, стиля и цвета верхней границы области блока или встроенной области. Устанавливается в [ <border-top-width> || <border-style> || <color> ] | inherit;
• border-top-color. Задает цвет верхней границы. Устанавливается в <color> | inherit;
• border-top-style. Задает стиль линии границы прямоугольника (непрерывная, двойная, штриховая и т.д.);
• border-top-width. Задает ширину верхней границы. Устанавливается в <border-width> | inherit;
• border-width. Свойство для быстрой установки одновременно свойств border-top-width, border-right-width, border-bottom-width и border-left-width. Устанавливается в <border-width>{1,4} | inherit;
• bottom. Определяет, насколько нижний край содержимого прямоугольника (box) смещен вверх от нижней границы содержащего прямоугольник блока. Устанавливается в <length> | <percentage> | auto | inherit;
• character. Задает вставляемый символ Unicode. Устанавливается в <character>;
• color. Задает цвет переднего фона текста элемента. Устанавливается в <color> | inherit;
• column-count. Задает число столбцов в области. Устанавливается в <number> | inherit;
• column-number. Устанавливает номер столбца для ячеек таблицы. Устанавливается в <number>;
• column-width. Задает ширину такого объекта, как внешняя графика. Устанавливается в auto | scale-to-fit | <length> | <percentage> | inherit;
• float. Определяет, будет ли прямоугольник прижат влево, вправо или вообще не будет прижат. Устанавливается в before | start | end | left | right | none | inherit;
• flow-name. Задает имя потока (flow). Устанавливается в <name>;
• font. Свойство для быстрого задания одновременно свойств font-style, font-variant, font-weight, font-size, line-height и font-family. Устанавливается в [ [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height>]? <font- family> ] | caption | icon | menu | message-box | small-caption | status-bar | inherit;
• font-family. Задает список имен семейств шрифтов и/или обобщенных имен семейств в порядке предпочтения. Устанавливается в [[ <family-name> | <generic-family> ],]* <family-name> | <generic-family>] | inherit;
• font-size. Задает размер шрифта. Устанавливается в <absolute-size> | <relative-size> | <length> | <percentage> | inherit;
• font-style. Задает стиль шрифта. Устанавливается в normal | italic | oblique | backslant | inherit;
• font-variant. Выбирает шрифты, имеющие строчные и прописные буквы (bicameral fonts). Устанавливается в normal | small-caps | inherit;
• font-weight. Задает насыщенность шрифта. Устанавливается в normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit;
• format. Формат XSLT. Устанавливается в <string>;
• grouping-separator. Разделитель групп разрядов формата XSLT. Устанавливается в <character>;
• grouping-size. Размер группы формата XSLT. Устанавливается в <number>;
• height. Задает высоту содержимого прямоугольников, создающихся элементами уровня блока и замещенными элементами. Устанавливается в <length> | <percentage> | auto | inherit;
• initial-page-number. Задает начальный номер страницы. Устанавливается в auto | auto-odd | auto-even | <number> | inherit;
• left. Определяет, насколько левый край содержимого прямоугольника (box) смещен вправо от левой границы содержащего прямоугольник блока. Устанавливается в: <length> | <percentage> | auto | inherit;
• linefeed-treatment. Определяет способ обработки символов перевода строки. Устанавливается в ignore | preserve | treat-as-space | treat-as-zero-width-space | inherit;
• line-height. Задает минимальную высоту каждого созданного встроенного прямоугольника. Устанавливается в normal | <length> | <number> | <percentage> | <space> | inherit;
• margin. Свойство для быстрого задания одновременно свойств полей margin-top, margin-right, margin-bottom и margin-left. Устанавливается в <margin-width> {1,4} | inherit;
• margin-bottom. Задает нижнее поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-left. Задает левое поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-right. Задает правое поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-top. Задает верхнее поле прямоугольника. Устанавливается в <margin-width> | inherit;
• master-name. Задает или выбирает шаблон (master). Устанавливается в <name>;
• number-columns-spanned. Задает число столбцов, занимаемых ячейкой таблицы. Устанавливается в <number>;
• number-rows-spanned. Задает число строк, занимаемых ячейкой таблицы. Устанавливается в <number>;
• page-break-after. То же, что и свойство CSS2 с тем же именем. Устанавливается в auto | always | avoid | left | right | inherit;
• page-break-before. To же, что и свойство CSS2 с тем же именем. Устанавливается в auto | always | avoid | left | right | inherit;
• page-height. Задает высоту страницы. Устанавливается в auto | indefinite | <length> | inherit;
• page-width. Задает ширину страницы. Устанавливается в auto | indefinite | <length> | inherit;
• position. Задает используемую схему размещения. Устанавливается в static | relative | absolute | fixed | inherit;
• relative-position. То же, что и свойство CSS2 с тем же именем. Устанавливается в static | relative | inherit;
• right. Определяет, насколько край содержимого прямоугольника (box) смещен влево от правой границы содержащего прямоугольник блока. Устанавливается в <length> | <percentage> | auto | inherit;
• score-spaces. Определяет, следует ли применять свойство text-decoration к пробелам. Устанавливается в true | false | inherit;
• space-treatment. Определяет способ обработки пробелов и других символов-разделителей, за исключением символов перевода строки. Устанавливается в ignore | preserve | ignore-if-before-linefeed | ignore-if-after-linefeed | ignore-if-surrounding-linefeed | inherit;
• span. Определяет, нужно ли поместить объект уровня блока в текущий столбец или растянуть его на все столбцы в области. Устанавливается в none | all | inherit;
• src. Задает ссылку URI, определяющую внешний ресурс. Устанавливается в <uri-specification> | inherit;
• start-indent. Определяет расстояние от начального края прямоугольника содержимого области, содержащей блок, до начального края прямоугольника содержимого области этого блока. Устанавливается в <length> | inherit;
• starts-row. Определяет, начинает ли эта ячейка строку. Устанавливается в true | false;
• text-align. Определяет способ выравнивания встроенного содержимого блока. Устанавливается в start | center | end | justify | inside | outside | left | right | <string> | inherit;
• text-decoration. Задает параметры оформления, добавляемого тексту элемента. Устанавливается в none | [ [ underline | no-underline] || [ overline | no-overline ] || [ line-through | no-line-through ] || [ blink | no-blink ] ] | inherit;
• text-indent. Определяет выравнивание первой строки текста в блоке. Устанавливается в <length> | <percentage> | inherit;
• text-shadow. Задает разделенный запятыми список теневых эффектов, которые нужно применить к тексту элемента. Устанавливается в none | <color> || <length> <length> <length>? ,]* <color> || <length> <length> <length>?] | inherit;
• top. Определяет, насколько край содержимого смещен ниже верхнего края содержащего его блока. Устанавливается в <length> | <percentage> | auto | inherit;
• vertical-align. Определяет вертикальное расположение. Устанавливается в baseline | middle | sub | super | text-top | text-bottom [ <percentage> | <length> | top | bottom | inherit;
• visibility. Определяет, будут ли отображены генерируемые элементом прямоугольники. Устанавливается в visible | hidden | collapse | inherit;
• white-space. Определяет способ обработки символов-разделителей (white-space) внутри элемента. Устанавливается в normal | pre | nowrap | inherit;
• white-space-collapse. Задает способ обработки последовательных символов-разделителей. Устанавливается в false | true | inherit;
• width. Задает ширину содержимого прямоугольников, созданных элементами уровня блока и замененными элементами. Устанавливается в <length> | <percentage> | auto | inherit;
• wrap-option. Определяет наличие оболочки строк форматирующего объекта. Устанавливается в no-wrap | wrap | inherit.
Не все свойства применимы ко всем объектам XSL-FO. В этой и следующей главах я буду явно перечислять свойства, применимые к используемым мной объектам. Заметьте также, что пока что ни в одном процессоре XSL-FO не реализованы все эти свойства.
Мы вкратце рассмотрели структуру XSL-FO, теперь пора перейти к практике: сейчас мы подробно рассмотрим работу примера.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
XSL-FO: форматирующие объекты XSL
XSL-FO: форматирующие объекты XSL Другая часть XSL — это XSL-FO, форматирующая часть языка XSL, с которой мы также познакомимся в этой книге. При помощи XSL-FO можно определить способ представления данных в документах XML, вплоть до размера полей, шрифтов, выравнивания, размера
Форматирующие объекты XSL: XSL-FO
Форматирующие объекты XSL: XSL-FO Самая популярная часть XSL — это XSLT-преобразования, с которыми мы уже познакомились в этой главе. Другая, существенно большая часть — это форматирующие объекты XSL, XSL-FO (XSL Formatting Objects).При помощи XSL-FO можно с точностью до миллиметра задать
Форматирующие объекты XSL-FO
Форматирующие объекты 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
Встроенные форматирующие объекты
Встроенные форматирующие объекты Помимо объектов блока, в XSL-FO можно также создавать встроенные (inline) объекты. Встроенный объект представляет собой часть большей форматирующей области, такой как блок; например, встроенный объект может представлять одно или два слова в
Приложение Б Форматирующие свойства XSL-FO
Приложение Б Форматирующие свойства XSL-FO В этом приложений перечислены все форматирующие свойства XSL-FO в спецификации XSL 1.0. Подробнее о свойствах XSL-FO можно узнать по адресу www.w3.org/TR/xsl/slice7.html. Многие свойства XSL-FO унаследованы из спецификации для каскадных таблиц стилей
Свойства
Свойства Прежде всего надо отметить, что объект document существует в единственном экземпляре для всего HTML-документа. Он присутствует всегда, если существует HTML-документ, поэтому специально создавать его не требуется.activeElementИспользуется в сценарии для получения ссылки на
Свойства
Свойства Объект window представляет текущее окно Web-обозревателя или отдельный фрейм, если окно разделено на фреймы.closedВозвращает true, если текущее окно закрыто. Может быть использовано при работе с несколькими окнами.defaultStatusСообщение по умолчанию, отображаемое в строке
Свойства
Свойства aboveВозвращает ссылку на слой, находящийся над текущим (т.е. выше в z-последовательности). Если таких нет, возвращается null.backgroundСсылка но объект Image, представляющий фоновый ресунок текущего слоя. Вы можете использовать свойство src этого объекта для задания или
Свойства WMI
Свойства WMI Для работы оснастки Управляющий элемент WMI необходимо, чтобы в системе был зарегистрирован GUID-номер {5C659257-E236-11D2-8899-00104B2AFB46}. Именно этот GUID-номер и идентифицирует настройки оснастки Управляющий элемент WMI. Эта оснастка входит в состав консоли Инфраструктура
Свойства папки
Свойства папки Если вы хотите удалить пункт Свойства папки из меню Проводника, а также из Панели управления, то откройте разделHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplоrer и создайте параметр NoFolderOptions типа DWORD со значением, равным 1.После перезагрузки пункт Свойства папки
Свойства обозревателя
Свойства обозревателя Вкладки окна Свойства обозревателяПри выборе пункта меню Свойства обозревателя (Сервис-Свойства обозревателя или Пуск-Настройка-Панель управления-Свойства обозревателя) появляется диалоговое окно, содержащее несколько вкладок. Следующие
Свойства папки
Свойства папки Удаление апплета Свойства папкиЕсли вы хотите удалить пункт Свойства папки из меню Проводника, а также апплет из Панели управления, то откройте разделHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplоrerи создайте параметр °NoFolderOptions° типа DWORD со значением 1. Типы файловЧтобы
1.1.6. Свойства
1.1.6. Свойства TUUCode компонент имеет восемь опубликованных свойств (мы здесь опустим описание обработчиков событий):Свойство About содержит информацию о правах и версии.Свойство Active может использоваться для вызова преобразования UUCode во время разработки (design time), подобно
Свойства, доступные только для чтения, и свойства, доступные только для записи
Свойства, доступные только для чтения, и свойства, доступные только для записи При создании типов класса можно создавать свойства, доступные только для чтения. Для этого просто создайте свойство без соответствующего блока set. Точно так же, если вы хотите иметь свойство,
Свойства записи
Свойства записи В программе Sound Forge все действия, связанные с записью, выполняются в окне Record (Запись) (рис. 7.5), для открытия которого необходимо выполнить команду Special ? Transport ? Record (Дополнительно ? Перемещение ? Запись). Рис. 7.5. Окно Record (Запись)О записи поговорим позже, а