Как мне сгенерировать документ OpenOffice Draw? - PullRequest
9 голосов
/ 18 октября 2010

Я хочу создать потоковую диаграмму в 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 должным образом , поэтому мне нужно придумать другой план.

Ответы [ 2 ]

1 голос
/ 27 мая 2011

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

0 голосов
/ 29 июня 2011

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

...