Как создать документ OpenOffice Draw?

Я хочу создать блок-схему в OpenOffice Draw.

Поскольку нужно показать много шагов (и они могут измениться в будущем), но я могу извлечь данные, я хочу автоматизировать создание с помощью следующих шагов:

  • Создайте новый документ ODG с указанными настройками страницы.
  • Вставьте фигуры блок-схемы с указанными свойствами.
  • Соедините эти элементы стрелками.
  • В идеале автоматически организуйте вещи в разумные положения.

Я не хочу часами читать о какой-то вещи "UNO" - мне просто нужны примеры кода, которые я могу адаптировать по мере необходимости.

Меня не беспокоит, использует ли код примера объектно-ориентированный API или просто модифицирует XML-файлы внутри заархивированного шаблона — до тех пор, пока это позволяет мне достаточно легко выполнять описанные выше действия.

Я делаю это с помощью Railo (CFML), но я также могу работать с Java или преобразовывать фрагменты из другие читаемые языки.

Любые предложения, как это сделать?


Обновление:
Я начал экспериментировать с XML-маршрутом. Я сохранил пустой файл и файл с одним объектом и сравнил их (рассматривая как zip) с увидеть разницу, а затем повторить несколько раз с разными изменениями, чтобы помочь понять, что происходит.

У меня есть очень простой (и неполный) код, который может создавать фигуры и соединять их, что можно увидеть здесь: http://gist.github.com/634306

Это очень грубо, но я, вероятно, смогу найти способ использовать то, что у меня есть сейчас, для производства того, что мне нужно, но я все еще надеюсь, что кто-то может указать мне лучший способ сделать это, тем более что я нужно выяснить какой-то способ позиционирования фигур соответствующим образом, что не будет тривиальным.

Я создал отдельный вопрос для этого четвертого пункта:
Как автоматически разместить блоки на блок-схеме?

Обновление 2.
Из этого другого вопроса я обнаружил GraphViz, который может визуализировать графики из данных — и я создал «диграф» из своих данных — поэтому все, что мне нужно, — это способ преобразовать вывод GraphViz во что-то, что может принять OpenOffice Draw. Очевидно, предполагалось, что будет SVG, но, похоже, в OpenOffice SVG не реализован должным образом тем не менее, поэтому мне нужно придумать другой план.


person Peter Boughton    schedule 18.10.2010    source источник
comment
Каковы ваши входы? Просто связный граф в какой-то базе данных или что-то в этом роде? Что вам действительно нужно на выходе? Просто .png или настоящий файл OO Draw?   -  person Tom Chiverton    schedule 19.10.2010
comment
По сути, да — это набор статусов Jira и их переходов (которые связаны с другими статусами), которые у меня есть в виде структуры данных CFML/JSON. (Нет доступа к БД, я конвертировал из HTML.)   -  person Peter Boughton    schedule 19.10.2010
comment
Что касается вывода, мне нужно будет проделать больше работы в OO Draw после этого (чтобы добавить дополнительную информацию и, возможно, исправить позиции), поэтому PNG не будет отличным, но любой векторный формат, который я могу импортировать, в порядке.   -  person Peter Boughton    schedule 19.10.2010
comment
OO Draw импортирует формат EPS, который является одним из выходных данных для GraphViz. Только что протестировал его, и он, кажется, правильно импортирует файлы EPS в векторном формате.   -  person Jordan Reiter    schedule 22.11.2010


Ответы (2)


Вы можете попробовать api.openoffice.org. Дайте мне знать, как это сработало для вас.

person Wivani    schedule 27.05.2011

Вы можете проверить мой сообщение о том, как создать таблицу ОО. Примером является .NET, но он должен быть легко переносим на Java. Я не делал этого раньше, но полагаю, что вы можете заменить writer8 на draw8, чтобы получить доступ к механизму OpenOffice Draw вместо механизма электронных таблиц. Если вы успешно создали электронную таблицу таким образом, вы можете проверить API о том, как добавлять фигуры и рисунки.

person lanoxx    schedule 29.06.2011