<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF122%3AOOo</id>
		<title>LXF122:OOo - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF122%3AOOo"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF122:OOo&amp;action=history"/>
		<updated>2026-05-13T03:13:04Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF122:OOo&amp;diff=10576&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF122:OOo&amp;diff=10576&amp;oldid=prev"/>
				<updated>2010-08-10T09:55:00Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''OpenDocument''' Раскрываем потенциал ''OpenOffice.org''&lt;br /&gt;
&lt;br /&gt;
==ODF: Вытянем данные из ''OOo''==&lt;br /&gt;
&lt;br /&gt;
: '''Марко Фиоретти''' запросто обработает информацию в формате OpenDocument: электронные таблицы, текстовые документы и прочее, а кода – всего ничего...&lt;br /&gt;
&lt;br /&gt;
На предыдущих уроках этой серии мы показали, как автоматически генерировать различные файлы OpenDocument при помощи нескольких очень простых скриптов.&lt;br /&gt;
Эти файлы, которые могут быть текстом, электронными таблицами или презентациями, сразу же можно редактировать в ''OpenOffice.org'' или другом ODF-совместимом офисном пакете. Среди прочего в данную категорию попадает и последняя версия ''Microsoft Office'', с установленным соответствующим&lt;br /&gt;
расширением (даже при том, что имеются некоторые проколы, особенно при работе с электронными таблицами). &lt;br /&gt;
&lt;br /&gt;
Мы уже знаем, как генерировать электронные таблицы, текст и презентации ODF, и в этом месяце рассмотрим другую проблему: как работать с уже существующими ODF-файлами? А именно, как извлечь и использовать содержащуюся в них информацию? Ну, и зачем вам может понадобиться делать нечто подобное?&lt;br /&gt;
Чтобы найти ответы, продолжайте читать.&lt;br /&gt;
&lt;br /&gt;
Не удивляйтесь, это предназначено не для системных администраторов или супер-хакеров. Вы узнаете, как играть в такие игры, даже если вы всего лишь обычный пользователь, считающий, что компьютеры должны облегчать жизнь людям, а не наоборот. Имеется множество ситуаций, когда полезнее и проще открыть&lt;br /&gt;
ODF-файл и поработать с его содержимым. Три самых типичных из них – обработка изображений, поиск или анализ текста и извлечение метаданных. До конца&lt;br /&gt;
этого урока мы рассмотрим их все.&lt;br /&gt;
&lt;br /&gt;
===ODF: что внутри?===&lt;br /&gt;
&lt;br /&gt;
Если вы пропустили предыдущие выпуски этой серии, то вот краткое содержание. Формат файлов OpenDocument (ODF) – это стандарт ISO для документов с форматированным текстом, электронных таблиц и презентаций, представляющий единственную реальную альтернативу форматам, разработанным для ''MS Office''.&lt;br /&gt;
&lt;br /&gt;
Прелесть ODF в том, что это просто сжатый Zip-архив, где каждую часть содержимого легко извлечь и обработать, потому что они аккуратно хранятся в отдельных местах. Текстовое содержимое, форматирование, метаданные и другая информация – все это хранится в различных текстовых XML-файлах, а изображения и другие двоичные объекты имеют собственные каталоги. При этом очень просто найти или изменить только те части содержимого, которые&lt;br /&gt;
действительно нас интересуют.&lt;br /&gt;
&lt;br /&gt;
===Уплотняем ODF===&lt;br /&gt;
&lt;br /&gt;
Первый практический пример обработки данного типа – это снижение общего размера ODF-файла благодаря сжатию каждого содержащегося в нем изображения в отдельности. Это не то же, что сжатие самого ODF-файла, и потенциально более эффективно: ведь полный ODF-файл уже сжат, и применение к нему '' zip, bzip2'' или любого другого алгоритма компрессии мало что даст. &lt;br /&gt;
&lt;br /&gt;
Подобные действия очень пригодятся, если необходимо передавать большие файлы при медленном соединении, или в качестве вложений электронной почты. Меньшие по размеру файлы также важны, если вы желаете опубликовать как можно больше материалов на какой-нибудь бесплатной учетной записи web&lt;br /&gt;
с ограниченным пространством. &lt;br /&gt;
&lt;br /&gt;
На http://www.OOOforum.org уже есть скрипт, уменьшающий размер ODF-файлов данным способом. Его автор сообщает, что версия 1.23 сокращает размер&lt;br /&gt;
руководства по установке ''OOo 2.0'' на 22 %, но выигрыш для слайд-шоу со множеством больших фотографий будет явно больше.&lt;br /&gt;
&lt;br /&gt;
Основная идея объясняется на http://www.oooforum.org/forum/viewtopic.phtml?t=27339, а сам скрипт опубликован и прокомментирован на http://www.oooforum.org/forum/viewtopic.phtml?t=27452. Поскольку эти две ветки содержат множество деталей, а базовая реализация скрипта та же, что описана ниже, мы просто приглашаем вас попробовать его и перейти к главной части урока.&lt;br /&gt;
&lt;br /&gt;
===Обработка изображений===&lt;br /&gt;
&lt;br /&gt;
Структура ODF-файла такова (см. '''ODF: что внутри?''' выше), что манипулировать изображениями, содержащимися в нем, очень легко. Прежде чем перейти к реальным примерам, обсудим базовую структуру, которую может иметь сценарий данного типа. Его код показан на '''Листинге 1''':&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF122_61_1.jpg|300px]]Как извлечь и обработать изображения из ODF-файлов.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 Листинг 1: odf_image_processing.sh&lt;br /&gt;
 1 #! /bin/bash&lt;br /&gt;
 2 START_DIR=`pwd`&lt;br /&gt;
 3 FILENAME=`basename $1`&lt;br /&gt;
 4&lt;br /&gt;
 5 #Создайте временный рабочий каталог&lt;br /&gt;
 6 mkdir tmp_odf_work_dir&lt;br /&gt;
 7 cp $1 tmp_odf_work_dir/odf_file.zip&lt;br /&gt;
 8 cd tmp_odf_work_dir &lt;br /&gt;
 9&lt;br /&gt;
 10 unzip odf_file.zip &amp;gt; /dev/null&lt;br /&gt;
 11 if [ -d Pictures ]&lt;br /&gt;
 12 then&lt;br /&gt;
 13 cd Pictures&lt;br /&gt;
 14 for ODF_PIC in `ls`&lt;br /&gt;
 15 do&lt;br /&gt;
 16 echo “Обрабатываем $ODF_PIC”&lt;br /&gt;
 17 #### Выполните то, что желаете, с текущим изображением&lt;br /&gt;
 18 done&lt;br /&gt;
 19 cd ..&lt;br /&gt;
 20 rm odf_file.zip&lt;br /&gt;
 21 find . -type f -print0 | xargs -0 zip ../new_$FILENAME &amp;gt; /dev/null&lt;br /&gt;
 22&lt;br /&gt;
 23 else&lt;br /&gt;
 24 echo “В $1 нет изображений”&lt;br /&gt;
 25 fi&lt;br /&gt;
 26&lt;br /&gt;
 27 cd $START_DIR&lt;br /&gt;
 28 rm -rf tmp_odf_work_dir&lt;br /&gt;
 29&lt;br /&gt;
 30 ### Здесь начинается пост-обработка &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Первая часть скрипта (строки 1–8) должна быть знакома любому, кто читал предыдущие уроки этой серии про ODF, поскольку там использовался тот же базовый подход. Все начинается с копирования ODF-файла, переданного в качестве первого аргумента, с расширением '''.zip''', во временный каталог ('''tmp_odf_work_dir'''), созданный лишь для работы в чистом окружении. Затем мы распаковываем архив и проверяем, есть ли в нем директория с именем '''Pictures''' (строки 10–11). Если ее нет, то скрипт выдает предупреждение и, после удаления временных файлов (строки 27–28), завершается. Если каталог '''Pictures''' существует, то переходим туда для обработки всех графических файлов в нем. Это единственная часть скрипта, которую вам следует переписать в соответствии с вашими нуждами, вставив вместо строки-комментария 17 соответствующие команды (см. примеры ниже). Следующие шаги удаляют локальную копию ODF-файла и опять упаковывают все в новый ODF-файл с префиксом '''new_''' (строки 19–21).&lt;br /&gt;
&lt;br /&gt;
Последняя строка-комментарий 30 намекает на другой вариант использования скрипта – то есть применение изображений, найденных в ODF-файле, где-то еще. Другими словами, в строке 17 вы можете написать:&lt;br /&gt;
&lt;br /&gt;
 cp $ODF_PIC $SOME_OTHER_DIRECTORY/$ODF_PIC&lt;br /&gt;
&lt;br /&gt;
а затем добавить в конец скрипта другие команды, для обработки картинок, которые изначально были запрятаны в презентации или текстовом документе. В качестве практически полезного примера ниже будет рассмотрено создание web-галереи.&lt;br /&gt;
&lt;br /&gt;
===Другие способы обработки===&lt;br /&gt;
&lt;br /&gt;
Помимо изменения размера, над ODF-файлами можно выполнять еще множество других операций. Лучший инструмент для этих целей – пакет программ для обработки изображений в командной строке ''ImageMagick'' ([[LXF116:ImageMagick|LXF116]]–[[LXF117:ImageMagick|117]]). На сайте http://www.imagemagick.org/Usage приведены тонны примеров того, что может сделать ''ImageMagick''. Наиболее частая операция с ODF-файлами, скорее всего, добавление рамки или уведомление о правах на копирование к каждой картинке, но единственное ограничение здесь – лишь ваши запросы. Просто посетите эту страницу и посмотрите, что может ''ImageMagick'': если вы вдруг подумаете: «Эй, я хочу сделать это со всеми картинками в моем слайд-шоу или докладе, не тратя времени», то способ очевиден и прост. Полностью скопируйте с web-страницы команду ''ImageMagick'', выполняющую то, что вы хотите, в строку 17 приведенного выше скрипта, затем изучите ее man-страницу (документация ''ImageMagick'' ясна и исчерпывающа), чтобы изменить или добавить ключи командной строки, удовлетворяющие вашим потребностям.&lt;br /&gt;
&lt;br /&gt;
Независимо от программы, которую вы примените в показанном скрипте для работы с картинками ODF, не забывайте очевидную, но легко опускаемую деталь: при данном подходе изменяется исходное изображение. Любой добавляемый текст (как водяной знак) будет нанесен прямо на исходный PNG-файл, присутствующий в презентации. Вы можете достичь того же эффекта путем добавления текстовой вставки поверх изображения, но цели тут абсолютно разные.&lt;br /&gt;
&lt;br /&gt;
Данное отличие становится еще более важным в электронных таблицах. Как показано на уроке работы с таблицами ODF в [[LXF119:OpenOffice|LXF119]], диаграммы на рабочих листах ODF – это диаграммы, а не изображения: они представляют собой куски XML-кода, который программы, совместимые с ODF, используют для отрисовки графики на рабочем листе в реальном времени при каждом изменении данных. Из этого следует, что наш скрипт никак не влияет на диаграммы, потому что он просматривает только каталог '''Pictures'''.&lt;br /&gt;
&lt;br /&gt;
Изменения изображений не обязательно касаются их внешнего вида. Все цифровые камеры используют формат Exif (Exchangeable Image File Format), для записи метаданных в свои JPEG-изображения. Простой способ читать и записывать эти данные в Linux – через ''exiftool'', консольный интерфейс для модулей ''Perl Image-ExifTool'' (http://cpan. uwInnipeg.ca/dist/Image-ExifTool).&lt;br /&gt;
&lt;br /&gt;
Включение в наш скрипт ''exiftool'' означает возможность извлекать временные метки, комментарии, тэги, географические координаты или любые другие данные из всех JPEG-фотографий любого ODF-файла. Столь же просто будет добавить комментарии или другую информацию в Exif-формат внутри самих JPEG-файлов.&lt;br /&gt;
&lt;br /&gt;
И последнее замечание к этому методу обработки изображе-ний OpenDocument: изображениями он не ограничивается. В Linux имеется масса консольных утилит, способных выполнять все что угодно с мультимедиа-файлами или двоичными объектами. Автоматическое сканирование макросов, для проверки на вирусы или другой вредоносный код, может работать таким же образом. Обработка возможна, даже если ваше аудио- и видеосодержимое размещено в слайд-шоу или текстовом&lt;br /&gt;
файле. Например, можно заменить все звуковые композиции презентации другими, с более низкой частотой дискретизации (что снизит размер файла), или преобразовать внедренное видео в открытые форматы, или уменьшить разрешение.&lt;br /&gt;
&lt;br /&gt;
===Создаем галерею изображений===&lt;br /&gt;
&lt;br /&gt;
Давайте рассмотрим пример внешнего использования изображений из ODF-файла. Помните, мы отмечали ранее, что строка 30 листинга 1 – то место, где можно работать с изображениями вне исходного ODF-файла? Наиболее частый случай – перенос их в web-галерею. Полезным инструментом для этого является ''shalbum'' (http://sourceforge.net/projects/shalbum) – сценарий оболочки, использующий ''ImageMagick'' для создания набора HTML страниц с миниатюрами и навигационными ссылками.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF122_62_1.jpg|300px]] Откуда взялась эта галерея изображений в сети? Естественно, из документа ODF!|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Рисунок показывает web-альбом, реагирующий на щелчки мыши, полученный заменой строки 30 листинга 1 на команду '''cd $SOME_OTHER_DIRECTORY/; shalbum''' и последующей обработкой слайд-шоу ODF, показанного в правом верхнем углу следующей страницы. Поскольку ''shalbum'' поддерживает также и подписи к рисункам, то будет относительно просто также извлечь их из ODF-файла и опубликовать эту информацию в сети. Ввиду ограниченности объема статьи оставляю это действие в качестве упражнения для читателя.&lt;br /&gt;
&lt;br /&gt;
===Поиск текста===&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к совершенно другой области: будем искать, какой файл содержит некую строку. Для простых текстовых файлов это очень просто. Linux, благодаря своей Unix-природе, всегда имел множество утилит для фильтрации, поиска и обработки текстовых файлов. Было бы очень удобно делать то же самое для ODF-файлов, не так ли? Как выясняется, это не очень-то и сложно. Во-первых, нам необходим инструмент для извлечения текста из zip-архива. '''Листинг 2''' содержит ODF-эквивалент традиционной команды ''cat'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 Листинг 2: odf_cat.sh, команда cat для ODF файлов:&lt;br /&gt;
 1 #! /bin/bash&lt;br /&gt;
 2&lt;br /&gt;
 3 mkdir tmp_odt_cat&lt;br /&gt;
 4 cp $1 tmp_odt_cat/odf_file.zip&lt;br /&gt;
 5&lt;br /&gt;
 6 cd tmp_odt_cat&lt;br /&gt;
 7 unzip odf_file.zip &amp;gt; /dev/null&lt;br /&gt;
 8&lt;br /&gt;
 9 tr “&amp;lt;” “\012” &amp;lt; content.xml | \&lt;br /&gt;
 10 grep -i ^text | \&lt;br /&gt;
 11 cut ‘-d&amp;gt;’ -f2- | \&lt;br /&gt;
 12 perl -e “while (&amp;lt;&amp;gt;) {s/&amp;amp;apos;/’/g; print }”&lt;br /&gt;
 13 cd ..&lt;br /&gt;
 14 \rm -rf tmp_odt_cat&lt;br /&gt;
 15 exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Общая структура '''Листинга 2''' та же, что мы видели в предыдущих примерах, поэтому сосредоточимся на строках 9–12; сперва, заменяя символы '''&amp;gt;''' на конец строки, мы размещаем каждый XML-элемент на отдельной строке, упростив себе фильтрацию чисто текстовых элементов. А в строке 11 удаляется все, кроме реального содержимого. Вызов ''Perl'' в строке 12 преобразует HTML-запись, соответствующую одиночной кавычке, в обычный вид.&lt;br /&gt;
&lt;br /&gt;
Вот и все! Да-да, эти несколько строк кода – все, что нужно для полного переноса содержимого текстового ODF файла в терминал или в любую другую программу, которой оно может понадобиться. В качестве доказательства, посмотрите на другой фрагмент bash-скрипта:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 Листинг 3: find_in_odf.sh&lt;br /&gt;
 1 for FILE in `find $1 -type f -name “*odt”`&lt;br /&gt;
 2 do&lt;br /&gt;
 3 /home/marco/PROJECTS/_Archive/LXF/ODF_Scripting/Part_3_processing/scripts/odf_cat.sh $FILE &amp;gt; tmp_odf_find&lt;br /&gt;
 4 grep -q -i “$2” tmp_odf_find &amp;amp;&amp;amp; echo $FILE&lt;br /&gt;
 5 rm tmp_odf_find&lt;br /&gt;
 6 done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он находит все текстовые файлы ODF в каталоге, передаваемом как первый аргумент, и сохраняет содержимое каждого из них во временном файле. Если файл содержит второй аргумент ('''$'''2), то имя соответствующего ODF-документа выводится в стандартный поток вывода. Вот как ваш автор нашел, в какой из его статей '''LXF''' упоминается браузер ''Konqueror'':&lt;br /&gt;
&lt;br /&gt;
 [marco@polaris LXF]$ ODF_Scripting/Part_3_processing/scripts/find_in_odf.sh . konqueror&lt;br /&gt;
 ./KONQUEROR_TIPS/konqi.odt&lt;br /&gt;
 ./LIVE_CD_ROUNDUP_2008/live_cd_roundup_2008.odt&lt;br /&gt;
&lt;br /&gt;
Конечно же, приведены только простейшие примеры; смысл в том, чтобы показать вам, как легко это делается. Более сложным инструментом командной строки для извлечения и сохранения более-менее форматированного текста из ODF-файла является ''odt2txt''. На web-странице http://www.verimag.imag.fr/~moy/opendocument описано, как он работает и как его можно использовать в других программах для поиска отличий между ODF-файлами&lt;br /&gt;
или интегрировать его в систему управления версиями.&lt;br /&gt;
&lt;br /&gt;
===Метаданные===&lt;br /&gt;
&lt;br /&gt;
Закончим данную серию по обработке ODF описанием некоторых вспомогательных компонентов. Кроме файла, зарезервированного для реального содержимого, внутри документа ODF имеется еще по крайней мере два XML-файла, с которыми также стоит поработать. Первый – это '''styles.xml'''. Используя описанные здесь приемы, можно автоматически модифицировать стили всех ваших ODF-файлов или заменить их новыми.&lt;br /&gt;
&lt;br /&gt;
Второй интересный файл называется '''meta.xml''', он содержит – угадали! – метаданные. Они делятся на фиксированные и определяемые пользователем: первая категория включает параметры типа даты последней распечатки или числа циклов редактирования, слов и символов для каждого документа. Извлечение этих чисел пригодится для сбора статистики о работе, построения полного каталога или просто индексирования. Онлайн-книга '''OpenDocument Essentials''' (http://books.evc-cit.info/odbook/ch02.html#meta-casestudy-section) Дэвида Дж. Айзенберга [J David Eisenberg] содержит отлаженный ''Perl''-скрипт для выполнения извлечения именно такого типа. Как всегда, существует более простое, хотя и менее гибкое, решение, представляющее собой скрипт оболочки в несколько строк.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 Листинг 4: cat_odf_metadata.sh&lt;br /&gt;
 1 #! /bin/bash&lt;br /&gt;
 2&lt;br /&gt;
 3 mkdir tmp_odt_cat&lt;br /&gt;
 4 cp $1 tmp_odt_cat/odf_file.zip&lt;br /&gt;
 5&lt;br /&gt;
 6 cd tmp_odt_cat&lt;br /&gt;
 7 unzip odf_file.zip &amp;gt; /dev/null&lt;br /&gt;
 8&lt;br /&gt;
 9 tr “&amp;lt;” “\012” &amp;lt; meta.xml | \&lt;br /&gt;
 10 grep ^meta&lt;br /&gt;
 11 exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вот результат запуска ''cat_odf_metadata.sh'' для обычного текстового ODF-файла:&lt;br /&gt;
&lt;br /&gt;
 meta:generator&amp;gt;OpenOffice.org/2.4$Unix OpenOffice.org_project/680m18$Build-9364&lt;br /&gt;
 meta:print-date&amp;gt;2008-12-04T03:39:41&lt;br /&gt;
 meta:editing-cycles&amp;gt;1053&lt;br /&gt;
 meta:editing-duration&amp;gt;P1DT20H34M6S&lt;br /&gt;
 meta:user-defined meta:name=”Info 1”/&amp;gt;&lt;br /&gt;
 meta:user-defined meta:name=”Info 2”/&amp;gt;&lt;br /&gt;
 meta:user-defined meta:name=”Info 3”/&amp;gt;&lt;br /&gt;
 meta:user-defined meta:name=”Info 4”/&amp;gt;&lt;br /&gt;
 meta:document-statistic&lt;br /&gt;
 meta:tablecount=”0” meta:image-count=”0”&lt;br /&gt;
 meta:object-count=”0” meta:pagecount=”7” meta:paragraph-count=”208”&lt;br /&gt;
 meta:word-count=”4565” meta:charactercount=”27064”/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате получился упорядоченный список метаданных, которые можно отфильтровать, как и любой системный журнал или обычный текстовый файл. Метаданные, определяемые пользователем, интересны по двум причинам. Во-первых, они сами, как и их названия, могут быть чем угодно: тэгами, комментариями, именами заказчиков – что только можно выразить текстом. Далее, поскольку метаданные расположены в обычном XML-файле, вы можете изменять их при помощи тех же скриптов и советов, что описаны в этой серии для автоматической генерации ODF-текста! Вот синтаксис для полей данного типа:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta:user-defined meta:name=”имя”&amp;gt;значение&amp;lt;/meta:user-defined&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак, для изменения скриптов, представленных в этой серии, для пометок и классификации всех ваших ODF документов требуется действительно мало усилий – разве нет?&lt;br /&gt;
&lt;br /&gt;
===А зачем все это нужно?===&lt;br /&gt;
&lt;br /&gt;
Формат OpenDocument – это международный стандарт, свободный от правовых ограничений; он позволяет конечному пользователю без опыта программирования создавать форматированные текстовые документы, слайд-шоу и презентации в полностью графическом интерфейсе. В то же время, если только у вас не слишком специфичные требования, это формат, весьма простой для автоматической обработки при помощи несложных программ, написание которых не занимает много времени. Все это делает OpenDocument прекрасным, если не единственным на сегодняшний день, выбором для создания, обработки и обмена различными офисными документами, при минимально возможных усилиях и без страха быть прикованным к единственному приложению. Мы надеемся, что все описанные в данной серии приемы помогут вам выполнять именно это. Наслаждайтесь ODF!&lt;br /&gt;
&lt;br /&gt;
===Взаимодействие с ODF===&lt;br /&gt;
&lt;br /&gt;
Мы говорили ранее и повторяем, что ODF – единственная существующая альтернатива проприетарным форматам файлов, сковывающим миллиарды существующих документов, в том числе принадлежащих налогоплательщикам.&lt;br /&gt;
&lt;br /&gt;
Вы можете убедиться на http://www.opendocumentfellowship.org, что многие правительства уже изменили свои предпочтения в пользу этого формата; вплоть до того, что в 2008 Microsoft заявила: «Очевидно, ODF победил». Поэтому смело советуйте друзьям, все еще предпочитающим ''MS Office'', установить модуль расширения ODF для этого пакета. К сожалению, ODF все-таки не дает 100% гарантии в том, что вы не будете прикованы к какому-либо конкретному приложению, если будете продолжать использовать свои документы. В настоящий момент ситуация выглядит благоприятной для текста и презентаций до тех пор, пока вы не внедрите изображения или другие двоичные объекты в проприетарных форматах. Для электронных таблиц содержимое может отличаться значительно: имеется прекрасное описание этой темы на http://www.robweir.com/blog/2009/05/update-on-odf-spreadsheet.html. Однако все выглядит много лучше, чем год-два назад. Сегодня ODF – это единственная спецификация формата файлов, о которой говорит вся промышленность; и она превосходна и открыта.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>