Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Валентин Синицын
Открытые форматы документов приобретают все большую популярность – и вы тоже можете извлечь из них пользу, даже не запуская OpenOffice.org. Все, что вам потребуется, – это интерпретатор Perl и задача, которую необходимо решить.
Сценариями, генерирующими динамический HTML-код, уже давно никого не удивишь. Простота языка разметки и повсеместная доступность веб-браузеров сделали этот язык «номером один» для представления структурированной информации. Однако, при своих несомненных достоинствах, HTML ориентирован в первую очередь на просмотр в электронном виде. Что же делать, если необходимо создать динамический документ для печати?
Ответом может быть OpenDocument 1.0, он же ISO/IEC 26300:2006 – открытый формат офисных документов, поддерживаемый, в первую очередь, открытым офисным пакетом OpenOffice.org, а при наличии соответствующего расширения – и Microsoft Office (XP и выше). Для программирования же удобно использовать Perl – универсальный язык-клей, усиленный модулем OpenOffice::OODoc Жана-Мари Гуарна (Jean-Marie Gouarne). Помимо OpenDocument, OpenOffice::OODoc поддерживает также и более старый формат OpenOffice.org 1.x.
Установка
Как и все в мире Perl, OpenOffice::OODoc доступен со CPAN [1]. Там же находятся и его основные зависимости: Archive::Zip [2] и XML::Twig [3]. Установка модуля производится стандартным образом:
perl Makefile.pl
make
make test
make install
Пользователи ActivePerl, разумеется, могут воспользоваться вместо этого утилитой PPM:
ppm install OpenOffice-OODoc
На этапе сборки вам будет предложено ввести некоторые параметры; особое внимание следует обратить на локальную кодировку. Данные настройки сохраняются в файле config.xml в том же каталоге, где находятся файлы модуля (обычно site/lib/OpenOffice/OODoc относительно стандартного пути библиотек Perl). Для PPM-пакета конфигурирование в процессе установки не предусмотрено, поэтому config.xml необходимо отредактировать вручную.
Архитектура
Модуль OpenOffice::OODoc имеет трехуровневую структуру. На самой нижней ступени иерархии находится класс OpenOffice::OODoc::File, инкапсулирующий функционал Archive::Zip и предоставляющий доступ к XML-содержимому документа для других компонентов модуля (см. врезку). Над ним располагается OpenDocument::OODoc::XPath, наследующий XML::Twig и обеспечивающий работу с XML-деревом OpenDocument посредством XPath. На этом можно было бы и остановиться: спецификация формата открыта, так что все необходимые операции можно выполнять посредством XPath-запросов, однако OODoc идет дальше и предоставляет несколько высокоуровневых «оберток», облегчающих работу с распространенными типами содержимого OpenDocument:
n OpenOffice::OODoc::Text – класс для взаимодействия с текстом (абзацы, заголовки, списки, таблицы, сноски, секции и т. д.);
n OpenOffice::OODoc::Image – класс, обеспечивающий работу с изображениями;
n OpenOffice::OODoc::Styles – как нетрудно догадаться по названию, этот класс управляет стилями документа (шрифты, цвета и многое другое);
n OpenOffice::OODoc::Meta – метаданные документа: заголовок, автор, дата создания и т. п.