Я хочу создать потоковую диаграмму в OpenOffice Draw.
Поскольку нужно показать много шагов (и они могут измениться в будущем), но я могу извлечь данные, я хочу автоматизировать создание, выполнив следующие шаги:
- Создание нового документа ODG с указанными настройками страницы.
- Вставка фигур потоковой диаграммы с указанными свойствами.
- Соедините эти вещи стрелками.
- В идеале, автоматически организовывать вещи в разумные позиции.
Я не хочу часами читать о какой-то вещи "UNO" - я просто хочу примеры кода, которые я могу адаптировать по мере необходимости.
Не беспокоит, использует ли пример кода OO API или просто изменяет XML-файлы внутри заархивированного шаблона - до тех пор, пока он позволяет мне достаточно легко выполнять вышеуказанные действия.
Я делаю это с Railo (CFML), но я также могу работать с Java или конвертировать фрагменты из других читаемых языков.
Есть предложения, как это сделать?
Обновление:
Я начал играть с маршрутом XML - я сохранил пустой файл и файл с одним объектом и сравнил их (рассматривая как zips), чтобы увидеть разницу, а затем повторил несколько раз с различными изменениями, чтобы понять, что происходит.
У меня есть очень простой (и неполный ) код, который может создавать фигуры и соединять их, что можно увидеть здесь: http://gist.github.com/634306
Это очень грубо, но я, вероятно, могу найти способ использовать то, что у меня есть сейчас, для производства того, что мне нужно, - но я все еще надеюсь, что кто-то может указать мне на лучший способ сделать это - особенно если Мне нужно найти способ правильного позиционирования фигур, который не будет тривиальным.
Я создал отдельный вопрос для этого четвертого пункта:
Как автоматически расположить поля на блок-схеме?
Обновление 2:
Из этого другого вопроса я обнаружил GraphViz , который может визуализировать графики из данных - и я создал «орграф» из моих данных - так что все, что мне нужно, - это способ преобразования вывода GraphViz во что-то, что OpenOffice Draw может принять. Очевидная мысль - это SVG, но, похоже, OpenOffice еще не реализовал SVG должным образом , поэтому мне нужно придумать другой план.