Image

Imagekamen_jahr wrote in Imageru_java

Categories:

И снова про конвертирование из .VSD (как решали когда-то) & подкрашивание элемента графика/графа

Давеча я вопрос задавал Конвертирование .VSD в изображение..: про опенсорсные тузлы (которые кстати по факту выкидывают необходимую инфо, посему изображение с искажениями)

Кроме этого я спросил у разработчика "старой" софтины, где также конвертация из .VSD нужна была, как он реализовал (12 лет назад НЕ на яве;-) ) конвертацию. При этом отмечу, что требовалось НЕ только обычное статичное изовражение: необходимо было в этом самом сконвертированном представлении "подкрасить" определенные элементы на графике в зависимости от известных входных условий.

Вот его вариант решения:
сохраняем в файловой системе .VSD файл, выковырянный из БД.
Вызываем Визио через OLE "visio.application"
Ставим текстовые метки в .VSD файл (посредством визио), содержащие не равные X- и Y координаты (еще фонты там сохраняем)
Конвертируем VSD файл в EMZ файл (грит, тогда 12 лет назад SVG не было)

При отображении изображения
Парсуем EMZ (поток байтовый читаем)
Исползуем текстовые метки как метки;-), вычитываем координаты из текстовых меток, сравниваем с координатами элементов из ВИЗИО графика, которые известны, т.к. они также  в определенных талицах Базы данных сохранены.
Не показываем данные метки на графике, подкрашиваем искомый элемент.

Я конечно немножко приел, от такого решения. С SVG+Batik(?) по идее должно быть в наше время намного проще то. Не смотря на то, что не все, что прописано в стандарте ,реализовано в браузерах (и фреймворках)
Image
Кто-нибудь имел дело с подобной задачей и обладает практич.опытом??