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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

Теоретически во вставке может находиться любой Perl-код; он также имеет доступ ко всем переменным нашего скрипта. Однако вводить длинные программы в шаблон неудобно, поэтому разумно создать функции-обертки вроде heading(), paragraph(), list() и image(), вставляющие в документ заголовок, абзац, список и изображение соответственно. Для пользователя шаблона вызов этой функции будет выглядеть как простая подстановка или разворачивание макроса. Функция image(), например, может выглядеть так:

sub image {

    my ($file, $width, $height) = @_;

 

    $anchor = $doc->insertParagraph($anchor, position => 'after');

    $doc->insertImageElement("Image" . $image_no++, attachment => $anchor, import => $file, size => "${width}cm, ${height}cm");

    return undef;

}

Изображения в OpenDocument являются содержимым абзаца: мы создаем его методом insertParagraph(). Переменная $anchor содержит последний элемент, сгенерированный текущей вставкой, и используется в качестве якоря, чтобы данные элементы появлялись в итоговом документе в том же порядке, что и в шаблоне. Изображения, вставленные в документ, не обязательно будут иметь родной размер, поэтому их высота и ширина задается явным образом (в сантиметрах; использовать здесь 'px', то есть пискели, невозможно). Функция возвращает undef, так что никаких других изменений структуры документа в основном цикле не производится.

По такому же принципу можно запрограммировать и все остальные функции. Следует только иметь в виду одно обстоятельство: стиль, который вы явно или неявно присваиваете созданному элементу, уже должен быть определен в документе. Этого можно добиться, создав его вручную (средствами OpenOffice::OODoc::Style) или разместив в документе элемент с нужным стилем прямо в редакторе OOo Writer.

Рассмотренные здесь примеры, конечно, не претендуют на полноту, но, хочется надеяться, дают представление об использовании OpenOffice::OODoc при решении повседневных задач. Все скрипты, по возможности, проектировались максимально расширяемыми, так что вы можете использовать их в собственных целях. Если у вас получится что-то общественно-полезное, не забудьте опубликовать код где-нибудь на SourceForge.net!

Приложение

OpenDocument изнутри

Документы OpenDocument представляют собой обычный ZIP-архив, расширение которого подбирается в соответствии с типом документа (.odt – для текста, .ods – для электронных таблиц и т. п.). Внутри архива находится несколько XML-файлов и каталогов, наиболее важные из которых таковы:

n  content.xml – непосредственно содержимое документа: текст, таблицы, ссылки на изображения. Последние могут находиться в каталоге Pictures в том же архиве или быть полностью внешними. В файле content.xml также определяются так называемые автоматические стили – то есть те, которые создаются офисным пакетом, когда вы нажимаете кнопки «жирный», «курсив», «список» в панели инструментов. В отличие от именованных стилей (Базовый, Основной текст, Заголовок 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