Введение
О чем эта статья? Статья эта – живой пример и краткий учебник по автоматизации OpenOffice.Calc и OpenOffice.Writer. Дело в том, что в большинстве организаций используются различные специфические программы. Однако, для форматирования результатов их работы применяются продукты компании Microsoft (в частности, Excel и Word). То есть результаты работы специфической программы передаются в программы из пакета Microsoft Office, а затем их можно, например, распечатать и включить в отчет. Ситуация знакомая многим. Причем средства взаимодействия с программами фирмы Microsoft хорошо изучены и давно используются. Однако не стоит забывать, что эти программы являются платными, и не каждая организация способна выложить круглую сумму за оснащение всех своих ПК лицензионными версиями этих программ. Поэтому в организации, где я работаю и была поставлена задача сделать все аналогично, но под бесплатный продукт OpenOffice. Собственно, это было короткое введение, теперь перейдем к основной части.
Основное требование заключалось в том, чтобы написано все было на Delphi. Сразу появилась проблема: материалов по OpenOffice под Delphi в сети почти нет. Основной документ, которым стоит обзавестись начинающему разработчику – безусловно DevelopersGuide по OpenOffice. В этом документе можно найти ответы почти на все возникающие в процессе разработки вопросы. Конечно, можно попросить помощи и у других разработчиков, например, здесь: http://www.oooforum.org/forum/.
Определившись с тем, откуда лучше черпать информацию, разберемся, что именно мы хотим получить от готового решения. В большинстве случаев для успешной совместной работы офисных программ и программ конкретного предприятия необходимо наличие следующих действий:
1. Создать новый файл (как вариант, открыть существующий файл).
2. Сохранить изменения в файле.
3. Вывести файл на печать.
4. Закрыть документ.
5. Внести в открытый документ какие-либо изменения.
6. Отформатировать документ (имеется в виду изменение цвета фона, размера шрифта, стили шрифта и т.д.).
Начнем со всего по порядку, причем, я постараюсь описать все так, как я сам разбирался с проблемами, соответственно, некоторые методы, написанные позже всего, дублируют по функциональным возможностям методы, написанные ранее, однако, настоятельно рекомендую знакомиться с предложенным материалом именно в этом порядке, так как это будет проще для понимания.
|