Usando arquivos .cdr (Corel Draw) no Linux com Inkscape

Durante a SACE 2008 (Semana de Arte, Cultura e Esportes) do CEFET-PB, fui chamado para desenvolver um simples quadro de medalhas. A SACE foi modelada de uma forma que cada curso do CEFET representava algo como um país nas olimpíadas, e ai as medalhas iam sendo acumuladas nas diversas modalidades.

hmm… revisando o post pra publicar, pensei em você que buscou no google por como fazer essa transformação de CDR -> SVG e ia ter que ler esses vários parágrafos inúteis abaixo. Assim, se você é um desses, pule diretamente para o 7º parágrafo, considerando esse como o segundo. :)

A parte de desenvolvimento foi rapidamente desenvolvida usando PSP (Python Server Pages) - iih, que Igor não leia isso - e nem banco de dados em si eu precisei usar (pela simplicidade do quadro, optei por persistir e serializar objetos com pickle mesmo). Um (simples também) painel de controle pra o pessoal do DCE adicionar as medalhas, e uma função de comparação dos atributos do objeto Curso para ajudar o sort() do python a ordenar eles direitinho.

Mas, como esse post não é dedicado a python ou a que tecnologias\idéias foram necessárias para desenvolver o quadro (apesar de que vou adicionar a etiqueta Python nas categorias desse post :D) eu encontrei um problema que julguei mais complicado, a logomarca do Cefet-PB que estava em formato .cdr.

Uso Inkscape para fazer (as poucas) artes que preciso (e só realmente quando preciso meeesmo!), e apesar do Corel Draw e do Inkscape trabalharem com imagens vetoriais, o Corel tem um formato proprietário de arquivos enquanto o Inkscape basicamente gera um .svg, um arquivo XML que descreve as formas bidimensionais desenhadas no editor. Se você não sabe se uma imagem é ou não um desenho vetorial basta dar um zoom nele e ver se os pixels ficam mais aparentes ou se tudo continua com qualidade perfeita. Esse é o principal indicio de que seu desenho é vetorial.

Assim, pensei em refazer a logomarca no Inkscape, tarefa que ia levar um tempinho mas que ia valer a pena, afinal não ia usar essa logomarca apenas nesse quadro de medalhas (hmm será que o simbolo formado por árvores, rios ou coisa assim vai me ajudar no trabalho de Ciências do Ambiente?) e enquanto tentava desenhar a elipse que envolve a logomarca resolvi procurar no Google se existia uma outra maneira de pegar aquele maldito .cdr e trabalhar com ele no Inkscape.

Foi ai que achei o ator principal desse post, o Uniconvertor, ferramenta desenvolvida pela sk1project e que funcionou muito bem aqui. Feita em Python e com muito código (tem um modulo pra cada tipo de desenho, como de gradientes, elipses, retangulos, espiral e etc) bastou eu baixar aqui e usar o easy_install que ela já estava pronta pra ser usada:

flavio@doritos:~$ uniconv
UniConvertor 1.1.3

USAGE: uniconv [INPUT FILE] [OUTPUT FILE]

Converts one vector graphics format to another using sK1 engine.
sK1 Team (http://sk1project.org), copyright (C) 2007,2008 by Igor E. Novikov

Allowed input formats:
AI  - Adobe Illustrator files (postscript based)
CDR - CorelDRAW Graphics files (7-X3,X4 versions)
CDT - CorelDRAW templates files (7-X3,X4 versions)
CCX - Corel Compressed Exchange files
CMX - Corel Presentation Exchange files (CMX1 format)
SVG - Scalable Vector Graphics files
FIG - XFig files
CGM - Computer Graphics Metafile files
AFF - Draw files
WMF - Windows Metafile files
SK  - Sketch/Skencil files
SK1 - sK1 vector graphics files

Allowed output formats:
AI  - Adobe Illustrator files (postscript based)
SVG - Scalable Vector Graphics files
CGM - Computer Graphics Metafile files
WMF - Windows Metafile files
SK  - Sketch/Skencil files
SK1 - sK1 vector graphics files
PDF - Portable Document Format
PS  - PostScript

Example: uniconv drawing.cdr drawing.svg

flavio@doritos:~$

Aí foi fácil. Olha só o exemplo? uniconv logomarca_cefetpb.cdr logocefetpb.svg e txã, a logomarca estava gerada em formato svg. Tudo bem que precisei fazer algumas alterações (a elipse veio preenchida, e alguns pontos foram tratados como linhas ao invés de figuras mesmo) mas funcionou que foi uma beleza.

2 Responses

  1. Werlon Says:

    não é tão fácil como dizem por ai.
    Eu utilizei o comando na linha de comando e ocorreu isso abaixo… O que eu faço!

    EU@home-desktop:~/Desktop$ uniconv cha1.cdr cha1.svg
    uniconv version 2.8.1 GNU(c) Gaspar Sinai
    USAGE: uniconv [-out file] [-in file] [-decode name] [-encode name] [-fromdos] [-todos] [-frommac] [-tomac]

    Currently known built-in encodings:
    utf-8, utf-8-s, utf-7, java, java-s, ncr, ucs-2, ucs-2-le, ucs-2-be, utf-16, utf-16-le, utf-16-be, euc-jp, euc-jp-3, euc-kr, big-5, hz, iso-2022-x11, ksc-5601-x11, gb-18030, gb-2312-x11, gb-2312, iso-2022-jp, iso-2022-jp-3, shift-jis, shift-jis-3, uhc, johab, unicode, bidi

    Currently known external encodings:
    Inuktitut-ICI, Berbere-conversion1, Belarusian, ArabTeX, Welsh, Devanagari-Inscript, Slovak-Programmer, Hangul, Czech-deadkeys, Lithuanian, Mongolian, Persian, BengaliSona, tscii, Ethiopic, IS_DV, Hangul2, Oriya-Inscript, Chinese-Pinyin, Ukrainian-Translit, gb-2312-r, GreekMonotonic, SpanishPrefix, Bulgarian, Syriac, iso-8859-1, CS-qwerty, French, TeX-smeTeX, Hungarian-prefix, TIS_620, Urdu-Nastaliq, Kanji, Telugu-Rts, Urdu, Baybayin, Malayalam-Inscript, Spanish, Bengali, Vietnamese, gb-2312-l, iso-8859-7, Malayalam, GreekAncient, rovas, Russian-Translit-Nordic, Polish, Tibetan-Wylie, GrandLatin, Tamil, mirroring, iso-8859-8, mik, Azeri, Sanskrit-Translit, Kannada-Inscript, Runic-Futhorc, viscii, Israeli, Inuktitut-KBD, iso-8859-15, Russian-Translit-German, wingreek, MiddleKorean, BlissSymbolics, jis-0212, Sanskrit, charclass, ksc-5601-r, Chinese-CJ, Troff, Unicode, ArmenianEast, Slavic, HebrewIsraeli, cp-1251, Serbian, Gujarati-Inscript, ksc-5601-l, Vietnamese-TCVNcombine, Runic-Futhark, nastaliq, Glagolitic, ArmenianWest, Danish, IS_OR, Devanagari, Gurmukhi, jis-0208, Dutch, Chinese-WB, Gurmukhi-Inscript, Devanagari-Phonetic, iso-8859-4, GreekPolytonic, Hungarian, windows-1255, Yiddish, Hangul3, iso-8859-6, indic, tcvn, IS_PJ, Telugu, Telugu-Inscript, iso-8859-9, jis-0213-1, Cherokee, Thai, ArmenianEastPhon, Georgian, Vietnamese-Telex2, Hanunoo, iso-8859-2, Kana, GreekBible, IS_AS, iso-646, Bengali-Inscript, Russian-JAVERTY, SAMPA, example, Kazakh-prefix, jis-0201, Czech, cp-1250, IS_ML, CS, Berbere-etendu, Ukrainian-Extended, IS_BN, Polish-slash, Devanagari-Velthuis, Romanian, Dakelh, Russian-extended, IS_KN, Mnemonic, Slovenian, Vietnamese-Telex1, ArabicTranslit, HungarianRunes, iso-8859-5, bidiclass, iso-8859-16, IS_RM, cluster, IS_TM, SGML, Russian-Translit-Slovene, precompose, Latin, Ukrainian, Tamil-Inscript, Kannada, OldItalic, koi8-r, iso-8859-3, koi8-c, ksx-1001, Farsi, ArabicKeyboard, shape, Klingon, iso-8859e, GeorgianB, Croatian, Russian-Translit, Russian-ISO-Latinitsa, Arabic, Gujarati, Runic, German, IS_GJ, IS_TL, ArabicBuck, Hebrew, ASCII-IPA, Berbere-standard, Cyrillic, Oriya, koi8-u, Vietnamese-TCVNkey, TeX, Guarani, Russian, Esperanto, jis-0213-2, Urdu-ArabTeX

    datapath settings:
    /usr/share/yudit/data:/home/EU/.yudit/data:/usr/share/yudit/data.

    example: /uniconv -decode Hungarian -encode iso-8859-2
    example: Sinai Ga’spa’r

  2. Werlon Says:

    Só funcionou parcialmente quando coloquei o comando com o nome completo

    uniconvertor cha1.cdr cha1.svg

    Valeu!

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.