уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Прошло уже больше года с того момента как я расстался со своей второй работой, где достаточно плотно использовал в работе Lazarus для разработки небольших программ под Linux. Именно тогда в блоге публиковались посты про использование формата Open Document и формирование отчётов для OpenOffice. Тогда же я и поделился с вами своим модулем для работы с документом Oo как с zip-архивом. Надо сказать, что первой неожиданностью было то, что такая простенькая работа оказалась полезна кому-то кроме меня =) И спустя некоторое время Бурков Сергей aka Leo дважды вносил изменения в модуль и улучшал его работу.

А примерно неделю назад Сергей снова обратился ко мне  просьбой разрешить выложить исходники модуля на SourceForge и организовать небольшой, но полезный проект для Lazarus и FPC под названием ODFProc. Ну что ж, я искренне рад, что модуль для работы с OpenOffice продолжает использоваться и даже перерастает в нечто большее, чем просто модуль — в небольшой, но полезный проект. И хоть я в настоящее время и не являюсь постоянным пользователем Lazarus, но тем не менее немного расскажу про новый проект ведь блог посещают не только люди, использующие исключительно  Delphi — может кто-то решит присоединиться к проекту и внести свой вклад в его развитие.

Итак, адрес проекта https://sourceforge.net/projects/odfproc/
Проектом руководит Leo. Найти его можно на форуме FreePascal.ru, а точнее в ветке работы над модулем (тут).

Что представляет из себя модуль uOpenOffice.pas (а ныне ODFproc.pas):

Модуль реализует запись документов Oo Writer, используя информацию по формату ODF. При этом в работе НЕ используется UNO Bridge — запись идет напрямую в разные части документа с использованием XMLReader/Writer.

При работе каждый документ представляется в виде zip-архива (так оно и есть — документ представляет собой простой zip) в котором располагаются xml-файлы, каждый из которых содержит какую-либо информацию по документу:

  • content.xml — содержит текст документа, таблицы, ссылки на рисунки и т.д.
  • styles.xml — содержит стили документа, список шрифтов документа и т.д.
  • meta.xml — мета-информация по документу, такая как автор документа, генератор документа, дата создания, статистика документа и т.д.
  • META-INF/manifest.xml — содержит описание всего документа, что и где располагается и т.д.

Первоначально мной били реализованы самые простейшие операции по работе с документами Oo Writer — запись текста. Этого было достаточно для реализации всех необходимых операций в моих программах. В последствии Leo дважды вносил изменения в модуль:

  • Был добавлено новый класс TTable для формирования таблиц в документа
  • Добавлены функции поиска/замены текста в документе
  • Добавлены функции по загрузке шаблонов документов
  • и т.д.
В общем, модуль значительно вырос. В последних изменениях модуля принимали участие несколько человек (предлагали, тестировали, исправляли)  В общем, судя по ветке форума на FreePascal.ru ребята внесли следующие изменения в модуль:
  • Избавили модуль от работы с внешними архиваторами и использовали модуль zipper (frost_asm)
  • Исправили работу процедур по поиску/замене текста в сложно форматированных документах (frost_asm)
  • На сколько я понял по сообщениям на форуме, также в процессе доработки была попутно организована поддержка LibreOffice
По ходу обсуждения работы с модулем и организации репозитория проекта v-t-l предложил несколько интересных предложений по улучшению модуля.
Вот на моменте обсуждения предложений мы и остановимся сегодня =) Если Вас заинтересовал проект ODFProc — не стесняйтесь, предлагайте своё участи в проекте. Вместе можно добиться многого!
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
6 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Alexxx
Alexxx
31/10/2011 12:44

Было бы неплохо если бы на Sourceforge была ссылка не только на SVN-репозитарий, но и на прямое скачивание библиотеки (стабильной версии)

Keeper
01/11/2011 05:01

Почему не сделать и для Delphi?

Kirill
05/11/2011 23:27

Влад, для работы через UNO, надо разобраться с UNO, а с компонентами или библиотеками гораздо проще разобраться.

Fagundes Brasil
Fagundes Brasil
25/05/2013 07:18

Здравствуйте, я из Бразилии, извините, не знаю России использовал Google Translator. Мне нужно создать некоторые отчеты в Open Office от Лазаря, ваш компонент был очень хорош, но как привести пример, составленный в Лазаре, хотя основные, чтобы увидеть, как операция (. Ехе и источник). Уже благодарна внимания