Attracted by virtual constructs

January 28, 2012

Trying to read files from the past…

Filed under: Calligra,KDE — by frinring @ 1:50 am

In the deeper directories of my storage device I have some files around from the old times, when my general purpose computer was still locked partially by proprietary (operating) systems. Never-the-less e.g. Corel Draw was still worth the lock and the money, I loved that program and what it enabled me to produce.

These products are still around. And are basically binary blobs now for me, the content not readable by the software I use. Blame on that software :) Well, but also the old software, i.e. Corel Draw, and its makers, using a storage format which seems not published and possibly only available by something like a Technology Partner program or similar, meaning lawyers and businessmen, not fun. But those files’ content is mine, and I completely dislike that the format binds me to a certain software.

Searching for FLOSS code that can understand files in Corel Draw’s CDR file format I discovered UniConvertor from the sK1 project and some initial code for LibreOffice, even actively developed ATM, but nothing for Karbon from the Calligra Suite.

Seeing with the hex editor Okteta (jay!) that the CDR file format is based on some RIFF and finding that one completely described on Wikipedia I somehow got tempted to try to develop a CDR import filter for Karbon, to finally free my content from those binary blobs again. And there was quickly some initial success, so I may try to stay with that combining game of decoding bytes:

At least the by-product libkoralle, a Qt-based library for parsing RIFF is useful already.

I look forward to others joining the efforts on the Karbon CDR import filter. I am mainly interested to read files of the versions 4 and 5, so people with newer versions need to make sure support for these themselves :) I still also need to contact the developers of UniConvertor and libcdr (if you are one, check your email box the next days ;) ).

You can find the current state in the branch “CDRImport” in my clone of the Calligra repo “filters-karbon-cdr” in the official Calligra repo (Updated January 28, 2012).

Advertisement

13 Comments »

  1. Someone at work still uses exlusively Corel Draw for graphics we sometimes need to interact with. Turns out the latest version (X5) exports to SVG quite well. Older versions did too but with some problems.

    Comment by Yuriy — January 28, 2012 @ 3:31 am |Reply

    • Converting the files with one of the latest Corel Draw program might have been the smarter way to get my content, true :) But then I have no copy around, and as a software developer coding a solution seems my natural approach to this nail ;) Decyphering bytes is really also fun to a degree, you feel like a archaeologist

      Comment by frinring — January 28, 2012 @ 1:37 pm |Reply

  2. Cool stuff! You don’t happen to have some Corel Painter files that you really need to read as well, do you?

    Comment by Boudewijn Rempt — January 28, 2012 @ 9:49 am |Reply

    • :) No, sorry, no itch to scratch for me, was not into pixel works those times

      Comment by frinring — January 28, 2012 @ 1:39 pm |Reply

  3. Awesome stuff. I’ve really been quite impressed with how Karbon has come along and this would be yet another feather in it’s cap.

    Thanks for hacking on this, I love seeing Karbon pick up cool new features like this, although like Boud, I’d love to see Corel Painter support as well. Hmm…. I wonder where I can get some itching powder… ;P

    Comment by Bugsbane — January 28, 2012 @ 5:38 pm |Reply

  4. Can you just explain me why not to join forces and work on libcdr, since it is under a license that you people can use in calligra (lgpl 2+, gpl 2+ and mpl 1.1+), and since there is a ODG generator code under a license that you people can use (lgpl 2+) in libwpd’s git module writerperfect? Anyway, libcdr is always open to collaboration if you decide ;)

    Comment by Fridrich Strba — January 28, 2012 @ 9:59 pm |Reply

    • Heya Fridrich, so you are faster in contacting :)
      I only discovered libcdr after I had my initial success, so I stuck with my experimental code for now and did not yet switch the train :)
      Also I am also not sure I look forward to go via an intermediate format (SVG) + intermediate streaming, directly creating the target working memory model somehow is more appealing to me when I think of runtime-resources. Then I just discovered today that I still have to go via SVG due to the Karbon sources… sure, thinking about libcdr, that is why I mentioned it :)

      Comment by frinring — January 29, 2012 @ 2:32 am |Reply

  5. [...] permetterà altrettanto, integrando l’importer di Friedrich Kossebau per Karbon. Entrambi i progetti dovranno confrontarsi coi limiti di [...]

    Pingback by LibreOffice includerà l’importazione delle immagini CDR da CorelDRAW | RampaCrew — February 3, 2012 @ 9:00 am |Reply

  6. [...] permetterà altrettanto, integrando l’importer di Friedrich Kossebau per Karbon. Entrambi i progetti dovranno confrontarsi coi limiti di [...]

    Pingback by LibreOffice includerà l’importazione delle immagini CDR da CorelDRAW | Tuttolinux - novità ed articoli dal mondo del pinguino ! — February 3, 2012 @ 9:02 am |Reply

  7. [...] permetterà altrettanto, integrando l’importer di Friedrich Kossebau per Karbon. Entrambi i progetti dovranno confrontarsi coi limiti di [...]

    Pingback by LibreOffice supporterà il formato CDR di CorelDRAW — February 3, 2012 @ 9:25 am |Reply

  8. [...] permetterà altrettanto, integrando l’importer di Friedrich Kossebau per Karbon. Entrambi i progetti dovranno confrontarsi coi limiti di [...]

    Pingback by LibreOffice includerà l’importazione delle immagini CDR da CorelDRAW | — February 4, 2012 @ 3:31 am |Reply

  9. [...] permetterà altrettanto, integrando l’importer di Friedrich Kossebau per Karbon. Entrambi i progetti dovranno confrontarsi coi limiti di [...]

    Pingback by LibreOffice includerà l’importazione delle immagini CDR da CorelDRAW | Indipedia – Indipendenti nella rete — February 4, 2012 @ 7:01 am |Reply

  10. [...] has now happened a few times since I started to try to import my old Corel Draw v4 files in Calligra. Just, one quickly gets used to what one has achieved, on the week-end I was happy to [...]

    Pingback by Progress on CDRv4 import « Attracted by virtual constructs — February 20, 2012 @ 5:56 pm |Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Theme: Toni. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.