Снова улучшена поддержка Visio в LibreOffice

Месяц назад мы уже сообщали о появлении в LibreOffice начальной поддержки документов MS Visio. Самое время рассказать, что нового, ведь вас не может не радовать чтение градиентов и текста. Нас это точно радует.

Напомним, что над проектом в рамках программы Google Summer of Code работает студентка Эйлид МакАдам (Eilidh McAdam). Ею руководит разработчик LibreOffice Фридрих Штрба (Fridrich Strba), а помогает им всецело ваша команда re-lab. Точнее говоря, Валя уже не только занимается реверс-инженерингом, но и патчит libvisio.

Несмотря на существенный прогресс, на текущий момент имеет смысл показывать разве что синтетические картинки с результатами конвертирования, но мы-то знаем, что вы съедите нам за это весь мозг, поэтому посмотрим на небольшой пример из реальной жизни. Следующая схема сделана в Visio 2010:

Исходный документ VSD в Visio 2010

А вот полученный с помощью vsd2xhtml рисунок в формате SVG. Обратите внимание, что фоновая карта отрисовалась кое-как потому, что это неполностью разыменованный стенсил, а стенсилы в libvisio поддерживаются пока что чисто номинально.

Конечное изображение SVG

Если вас интересуют все грязные подробности о поддержке VSD, спешим поделиться. В текущей версии libvisio, v0.0.4, поддерживаются:

  • все геометрические команды, т.е. MoveTo, LineTo, PolylineTo, ArcTo, EllipticalArcTo, Ellipse, NURBSTo, кроме SplineStart и SplineKnot;
  • прозрачность, сплошная и градиентная заливки, обводка и стили обводки (не без ошибок);
  • размер и ориентация страницы, многостраничные документы;
  • текст, включая простое форматирование (кегль, жирное и наклонное начертания);
  • трансформации вроде вращения и отражения (работает и с группами);
  • группы объектов;
  • внедрённый растр.

В Git после выпуска 0.0.4 также была улучшена поддержка текста. Есть ещё немало возможностей формата, которые пока не поддерживаются, от соединительных точек до VBA. Что-то из этого будет исправлено в ближайшем времени, а что-то будет на время отложено.

Желающим поковыряться с этим самостоятельно по-прежнему придётся скачать и собрать исходный код libvisio (лучше всё-таки брать из Git), libwpd, libwpg и writerperfect. Сборку последнего необходимо сконфигурировать с ключом --with-libvisio, чтобы собрать утилиты vsd2odg и vsd2xhtml. LibreOffice из Git может открывать VSD напрямую.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.