Команда re-lab опубликовала в Gitorious первую и достаточно полную документацию (https://gitorious.org/re-lab/graphics/trees/master/microsoft...) по двоичным форматам Microsoft Visio — популярного приложения для создания схем и диаграмм. Документация описывает строение документов и даёт определение большому числу чанков, что уже позволяет реализовать поддержку форматов VSD и VSS в свободных программах.
Для разбора двоичных форматов VSD и VSS используется приложение OLE toy (https://gitorious.org/re-lab/tools/trees/master/oletoy), написанное в конце прошлого года для разбора формата Microsoft Publisher. Команда контактирует с участниками проекта LibreOffice — студентом программы Google Summer of Code и его руководителем, которые занимаются поддержкой VSD (http://cgit.freedesktop.org/libreoffice/contrib/libvisio/) в LibreOffice Draw.
Проект re-lab, задачей которого является реверс-инжиниринг популярных закрытых форматов, сформировался в 2007 году. Первой успешно ре...URL: http://linuxgraphics.ru/news.php?readmore=1793
Новость: http://www.opennet.me/opennews/art.shtml?num=30789
Не может не радовать!
Главное, чтобы в ответ им не стали использовать вложенные "более умные и ожидаемые пользователями" структуры в чанках.
Так оно и будет...
> Так оно и будет...Мучаться над новой (несовместимой с предыдущими) версией формата и огрести кучу проблем среди собственных пользователей, только чтоб малость поднасрать? Маловероятно.
Я бы на месте MS добавил бы сжатие к VDX и делал бы попытки склонить пользователей к переходу на сжатый VDX. Если подойти с позиций создания проблем, то сжатие при этом надо слегка модифицировать так чтобы оно отличалось и от стандартного и от VSD-шного.
Реализация пустяковая, а головняка с разбором будет много.
Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в каждой версии офиса.
> Не стоит подсказывать микрософтам как менять форматы файлов. Они этим занимаются в
> каждой версии офиса.Последний раз формат VSD менялся при переходе с Visio2k2 на Visio2k3. А до того -- с Visio 5 на Visio 2k. Согласно MS изменений в формате в Visio 2010 не было.
Т.о. сейчас используется по умолчанию версия появившаяся приблизительно 8 лет назад.
Не думаю, что это хорошо согласуется с "Они этим занимаются в каждой версии офиса."
Бокового спроси, ради самбистов напрягались. Правда, те тоже не лыком шиты оказались.
Возможностей с минимальными последствиями для себя нагадить в протоколе больше чем в сохранёняемом файле.
Вообще-то микрософт несколько лет назад перешёл на XMLный формат.
непонятно про что вы. попробуйте открыть в notepad VSD файл.. XML'ем там и не пахнет!
> непонятно про что вы.Видимо про то, что у MS есть VDX, который можно безболезненно раздувать.
Менять VSD существенно сложнее. Между 11 и 6 версиями разница (с точки зрения расколдовывания) незначительная и от 5-ой версии они тоже ушли недалеко.
А 5-ая версия -- это 97 год, MS-ом это стало только два с половиной года спустя.Т.о. хотя практический интерес представляет VSD/VSS, если что-то и будет меняться, то VDX.
Вот парню повезло, который взял задание на GSoC поддержку формата Visio в LibreOffice :)
А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат. 2) Open/LibreOffice Draw — верх неюзабельности.
> А чему везти-то? 1) Как уже сказали мекрософт перешел на xml-ный формат.
> 2) Open/LibreOffice Draw — верх неюзабельности.А тому повезло, что легче будет 5к зелени заработать парню
MS выдумал xml-ный формат (если память не подводит) для версии 2k3.
Двоичный формат в версии 2k7 остался таким же как и в 2k3 (2k10 не смотрел)
Двоичный формат используется в 2k3 и 2k7 по умолчанию (а чему удивляться? -- в VSD используется LZ-подобное сжатие, а в VDX base64 раздувание для любых нетекстовых вставок, в результате VDX оказывается раз в 5 больше чем совпадающий по содержанию VSD).Хотя LO Draw и не лучший вариант для работы с VSD, шансы на успешную реализацию приемлимого импортёра у LO наибольшие, в частности благодаря наилучшей среди свободных приложений поддержке метафайлов. Dia/Kivio(Flow)/Inkscape/Karbon в этом смысле пока ничего хорошего не светит.
Кроме того, ментор собирается сделать результаты доступными как часть libwpg, что даст возможность использовать их в других проектах.
Хм. А табличку про поддержку WMF ты в итоге выложил в открытый доступ? :)
> Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
> доступ? :)Она лежала на какой-то старой версии сайта sk1project, у меня где-то есть копия, если надо.
Но это было примерно 3 года назад, т.ч. "если делать, то по-большому" -- пройтись по свежим версиям приложений и собрать свежие данные (+ обозначить изменения по сравнению с предыдущими версиями).
>> Хм. А табличку про поддержку WMF ты в итоге выложил в открытый
>> доступ? :)
> Она лежала на какой-то старой версии сайта sk1project, у меня где-то есть
> копия, если надо.Обычно стоит публиковать копии, пока не помер/потерялся тот диск, где они ещё есть.
> Обычно стоит публиковать копии, пока не помер/потерялся тот диск, где они ещё
> есть.Из тех данных сейчас наибольшую ценность представляют метафайлы использовавшиеся для тестирования. А их копии есть у нескольких участников забега.
В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то забросили.
> В проекте SK1 vsdviewer ещё давно начали делать, но потом почему то
> забросили.Это как бы один и тот же проект, и sK1 к нему имеет несколько непрямое отношение :)
да это тот же Uniconverter. У меня где-то валяется их практически полностью работающий vsdviewer на python. (ему года 3). Они его зачем-то убрали из проекта
> практически полностью работающийvsdviewer отличается изрядной тормознутостью (нет буферизации), ущербной поддержкой EMF (в т.ч. отсутствием поддержки EMF+), игнорированием разных "приятных мелочей" обнаруженных после прекращения работы над vsdviewer (например, списков чанков, что может приводить к неадекватному результату при наличии на диаграмме коннекторов и (возможно) с файлами, в которых проводилось редактирование с множественными удалениями-добавлениями элементов, вложенным группированием с модификацией групп без разгруппирования и т.д.).
В результате всё может быть хорошо на сложном файле и обломаться на простом.
а мне кажется код писать проще имея уже заготовку для примера, а не только документацию
> а мне кажется код писать проще имея уже заготовку для примера, а
> не только документациюи не понятно зачем они вообще убирали vsdviewer.
глядишь бы уже допилили
> и не понятно зачем они вообще убирали vsdviewer.
> глядишь бы уже допилилиПотому и убрали, что некому допиливать.
> а мне кажется код писать проще имея уже заготовку для примера, а
> не только документациюА там и так не только документация.
> да это тот же UniconverterНе. vsdviewer это графический просмотрщик, а Uniconverter это консольный конвертер. vsdviewer конечно мог сохранить vsd в svg, но это не было его основной задачей.
> конечно мог сохранить vsd в svg, но это не было его
> основной задачей.Основная задача демонстрируется нажатием ^T.
Кто-нибудь взрослый и юридически подкованный может рассказать о возможностях фирм, подобных МС, оказать давление на тех, кто использует плоды таких реверсов?
Ага, сонька вон надавила, теперь не знает куда спрятаться, пусть давят, тима переименуется и продолжит свое дело, а анонимусы зад...ат мс ))
>> кто использует плоды
> тима переименуется и продолжит свое делоLibreOffice только-только переименовался, куда ж им ещё-то? =)
Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет в LO, али в OOo, это будет замечательно.
> Draw не годится для схем и диаграмм. Когда нечто подобное Visio будет
> в LO, али в OOo, это будет замечательно.Обсуждали ж уже.
Замечательно! Жду открытой библиотеки либо реализации в опенофисе.
Пусть для начала в Draw нормально поддержку SVG реализуют.
Это тост? ~"Желаю, чтобы всем!"(ц)ППШариков