У підтримки файлів corel draw в спо з'явився новий шанс - мультимедіа в linux

В рамках проекту LibreOffice розпочато розробку бібліотеки на C ++ для читання файлів Corel DRAW. У потилицю їм дихає розробник Calligra Suite з власної реалізацією підтримки CDR.

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

У минулому році щиро ваша команда re-lab встигла ще трохи вивчити формат CDR, поки переносила його парсер в OLE Toy - раніше створену нами програму для дослідження довічних форматів.

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

Що в бібліотеці

За структурою і складом бібліотека libcdr дуже схожа на libvisio: в ній є парсер і пробний конвертер в SVG, який зберігає малюнки SVG всередину документа XHTML. Якщо він знаходить в CDR кілька сторінок, кожна з них зберігається всередині XHTML як новий вбудований малюнок SVG.

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

що підтримується

На поточний момент бібліотека Новомосковскет тільки файли v7-X3 і конвертує основні об'єкти: контури, прямокутники, еліпси, сектори, дуги. Частково підтримується кольорова заливка, є мінімальна підтримка обведення. Забороть багатокутники поки не вдалося, але ми працюємо над цим.

Давайте відразу домовимося, що як і у випадку з 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

Як завжди, чекайте новин.

Стоп, а що з Calligra Suite?

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

Цікаво, що в кращих традиціях аматорської палеонтології Фрідріх №2 збирається сконцентрувати увагу на четвертій і п'ятій версіях формату. Як бачите, імпорт контурів у нього працює. Бібліотека libkoralle. яка і виконує розбір файлів RIFF, теж публічно доступна.

Три проекти для підтримки одного формату - це якось забагато. Але давайте все-таки подивимося, що з цього вийде.

SVG Cleaner став швидше і навчився видаляти елементи MS Visio

Що гальмує забезпечення підтримки DWG в вільних САПР?

Схожі статті