Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

В рамках принятой нами упрощенной модели под «содержимым абзаца» подразумеваются: простой текст (#PCDATA, обратите внимание на декодирование из внутренней UTF-8 в локальную кодировку системы и замену символов, запрещенных в HTML), стилевые выделения (span), гиперссылки (hyperlink) и изображения (image). Все они обрабатываются одноименными функциями, поэтому при необходимости включить в данный код, например, сноски, это не составит большого труда. Для необработанных элементов генерируется предупреждение.

Функция span() отвечает за выделение текста полужирным шрифтом и курсивом:

sub span {

  my $elt = shift;

  my %attrs = $doc->getStyleAttributes($doc->textStyle($elt));

  if ($attrs{'properties'}->{'fo:font-weight'} eq 'bold') {

    return "<b>" . paragraph_content($elt) . "</b>";

  } elsif ($attrs{'properties'}->{'fo:font-style'} eq 'italic') {

    return "<i>" . paragraph_content($elt) . "</i>";

  }

}

Конструкция $doc->getStyleAttributes($doc->textStyle($elt)) возвращает стиль, связанный с элементом $elt. В таком виде она будет работать только для автоматических стилей; для работы с именованными стилями необходимо создать объект OODoc::Style на базе файла styles.xml (ooStyle(member => 'styles')); Помимо задействованных здесь свойств fo:font-weight и fo:font-style, назначение которых, надеюсь, понятно из кода, могут оказаться полезными fo:color (цвет текста) и fo:background-color (цвет фона). Полный список свойств стилей можно найти, конечно, в спецификации [4].

Функции image() и list() действуют аналогичным образом, и мы не будем приводить их здесь ради экономии места. Остановимся лишь на способе различить нумерованный и ненумерованный список:

 1:  my $is_ordered = 0;

 2:  my $style = $doc->getStyleElement($doc->textStyle($elt), namespace => 'text', type => 'list-style');

 3:  my $st = $doc->getNodeByXPath("//*[@text:level="$level"]", $style);

 4:  if ($st && $st->getName eq 'text:list-level-style-number') {

 5:    $is_ordered = 1;


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100