(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

У поддержки файлов Corel DRAW в СПО появился новый шанс

Источник: linuxgraphics
linuxgraphics

В рамках проекта LibreOffice начата разработка библиотеки на C++ для чтения файлов Corel DRAW. В затылок им дышит разработчик Calligra Suite с собственной реализацией поддержки CDR.

Чего уж там скрывать: за почти пять лет существования проекта UniConvertor прогресс в отношении файлов Corel DRAW более чем скромен. UC так и не ушёл сильно дальше поддержки страниц, кривых Безье, заливок и обводок. Какие бы на то у команды ни были причины, принципиальных улучшений давно не видно, впрочем, равно как и самой разработки.

В прошлом году искренне ваша команда re-lab успела ещё немного изучить формат CDR, пока переносила его парсер в OLE Toy - ранее созданную нами программу для исследования двоичных форматов.

Полученную новую информацию, к сожалению, пристроить к делу было некуда. Нельзя сказать, чтобы нас это очень вдохновляло на новые трудовые подвиги. К счастью, уже знакомый вам Фридрих Штрба из команды LibreOffice пришёл на помощь и в конце ноября написал первый код парсера файлов CDR.

Активная работа над проектом началась лишь на прошлой неделе, но буквально вчера Фридрих выпустил первую версию библиотеки с минимальной поддержкой файлов CDR.

Что в библиотеке

По структуре и составу библиотека libcdr очень похожа на libvisio: в ней есть парсер и пробный конвертер в SVG, который сохраняет рисунки SVG внутрь документа XHTML. Если он находит в CDR несколько страниц, каждая из них сохраняется внутри XHTML как новый встроенный рисунок SVG.

Кроме того, если пересобрать LibreOffice с поддержкой libcdr, файлы Corel DRAW будут открываться в нём напрямую. Словом, никаких отличий от libvisio.

Что поддерживается

На текущий момент библиотека читает только файлы v7-X3 и конвертирует основные объекты: контуры, прямоугольники, эллипсы, секторы, дуги. Частично поддерживается цветная заливка, есть минимальная поддержка обводки. Забороть многоугольники пока не удалось, но мы работаем над этим.

Некоторые ошибки вроде чтения размера страницы и ориентации прямоугольников были исправлены сразу после выпуска версии 0.0.1. В связи с этим всем, кто интересуюется проектом, советуем тестировать только код из Git и почаще обновлять локальную копию репозитория.

Сложности

Давайте сразу договоримся, что как и в случае с Visio поддерживать абсолютно все возможности формата не получится. Например, ни в OpenDocument, ни в SVG нет раздельного скругления углов прямоугольника.

Поэтому cdr2xhtml честно конвертирует такие фигуры в кривые Безье.

Согласитесь, что для использования клипарта и старых наработок в режиме "как есть" этого более чем достаточно.

Отдельный вопрос - как быть с CMYK и плашечными цветами. Вообще говоря, OpenDocument немного знает про CMYK: при работе с векторными графическими объектами в LibreOffice их заливку можно задать и в этой цветовой модели. Но на текст, например, это уже не распространяется. Здесь возникают разные варианты, что делать с такими цветами; решение пока не принято.

Что касается SVG, в нём CMYK поддерживается через icc-color, и это вполне приемлемо, поскольку Corel DRAW работает примерно так же и даже сохраняет цветовые профили прямо в CDR. Больше того, в SVG2 планируется поддержка некалиброванных устройств вывода, так что можно будет вбивать значение CMYK без привязки к цветовым профилям.

Иными словами, libcdr нужно просто уметь отдавать цвета как есть или, по выбору клиентского приложения, конвертировать их в RGB.

О будущем

Фридрих планирует дополнительно попиарить проект на конференции FOSDEM, которая пройдёт на этих выходных в Брюсселе, и в любом случае продолжит писать код. Искренне ваша команда re-lab со своей стороны будет и дальше помогать LibreOffice с реверс-инжинерингом..

Где взять, как собрать и использовать

Процедура абсолютно та же, что и для libvisio. Подробности можно узнать из конца статьи про Visio/LibreOffice. Краткий вариант прилагается.

Забираем код из Git:

$ git clone git://anongit.freedesktop.org/libreoffice/libcdr

Собираем:

$ ./autogen.sh && ./configure && make && sudo make install

Используем конвертер:

$ cdr2xhtml file.cdr > file.xhtml

Используем любимый текстовый редактор для извлечения встроенного документа SVG в отдельный файл, открываем файл в Inkscape.

Как обычно, ждите новостей.

Стоп, а что с Calligra Suite?

О, да. Фридрих Коссебау из команды Calligra Suite начал работать над собственным импортировщиком CDR для Karbon. Он посмотрел на libcdr, но решил создать парсер RIFF для Qt, и уже на его основе написать импортировщик CDR.

Любопытно, что в лучших традициях любительской палеонтологии Фридрих №2 собирается сконцентрировать внимание на четвёртой и пятой версиях формата. Как видите, импорт контуров у него работает. Библиотека libkoralle, которая и выполняет разбор файлов RIFF, тоже публично доступна.

Три проекта для поддержки одного формата - это как-то многовато. Но давайте всё-таки посмотрим, что из этого выйдет.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 30.05.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Pinnacle Studio 22 Ultimate
FastReport.Mono Single License
TeeChart Pro VCL/FMX with source code single license
Bamboo
Nero Basic Burning ROM 2018 VL 5 - 9 License corporate
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
Программирование в AutoCAD
Компьютерный дизайн - Все графические редакторы
Мастерская программиста
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100