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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

$doc->{'delimiters'}{'text:span'} = { 'begin' => BOLD, 'end' => RESET };

$doc->outputDelimitersOn();

 

print scalar $doc->getTextContent();

Как можно видеть, разделители – это просто хэш, на который указывает свойство delimiters объекта OODoc::Text. Его ключами являются имена элементов: text:h соответствует заголовкам (они у нас выводятся красным цветом), text:a – гиперссылкам (синий цвет), text:list-item – элементам списков (желтая звездочка в качестве маркера – стандарт OpenDocument различает нумерованные и ненумерованные списки не на уровне тегов, как HTML, а на уровне стилей, и мы вернемся к этому вопросу чуть позже), а text:span – стилевому выделению (жирный, курсив и т. п.). Соответствующие константы определены в модуле Term::ANSIColor.

К сожалению, в версии 2.035 (и, по-видимому, более ранних) в классе OODoc::Text присутствует ошибка, которая препятствует корректному выводу списков в методе getTextContent(). Исправление для нее можно найти на сайте журнала www.samag.ru в разделе «Исходный код». Автор модуля на предложенный патч, к сожалению, пока не отреагировал.

Легкость применения ограничителей одновременно является и плюсом, и минусом, поскольку серьезно сужает их область применения. Ограничитель можно связать только с именем элемента, поэтому, например, различить заголовки различных уровней (за это отвечает атрибут text:outline-level) с их помощью невозможно. Для более серьезных целей необходимо использовать другой подход – и один из возможных вариантов мы рассмотрим в следующем разделе.

HTML-конвертер

Преобразование OpenDocument в HTML едва ли можно назвать трудной задачей – соответствующий экспортный фильтр включен в стандартную поставку OpenOffice.org; существуют и внешние XSLT-таблицы, например, расширение для Mozilla Firefox [6]. И в то же время каждый, кто сталкивался с необходимостью опубликовать документ OpenDocument на своем веб-сайте, думаю, согласится: с данной задачей указанные инструменты справляются далеко не на «пятерку». Проблема в том, что они (из лучших, разумеется, побуждений) стремятся максимально сохранить внешний вид документа, в результате чего он обрастает встроенными стилями и CSS-таблицами, а вам-то необходимо сохранить смысловую разметку и внедрить документ в уже имеющийся дизайн! Умело используя OpenOffice::OODoc, можно экспортировать в HTML только те аспекты документа, которые действительно нужны, и игнорировать остальное.

Спецификация OpenDocument 1.0 насчитывает 700 страниц, но, к счастью, далеко не все из перечисленного в ней может встретиться вам в «рядовом» документе. Приведенный ниже пример поддерживает заголовки, абзацы, списки, стилевые выделения, гиперссылки и изображения; в случае необходимости можно легко добавить и другие элементы (первая кандидатура – очевидно, таблицы).

my $doc = ooDocument(file => $i_file, member => 'content');

my $meta = ooMeta(file => $i_file);

 

$doc->outputDelimitersOff();

 


Предыдущая страницаОглавлениеСледующая страница
 
[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