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