CDR import - map to what format?

Friedrich W. H. Kossebau kossebau at kde.org
Mon Feb 13 09:31:07 GMT 2012


Hi Sven,

Am Freitag, 10. Februar 2012, 15:23:37 schrieb Sven Langkamp:
> On Fri, Feb 10, 2012 at 1:19 PM, Friedrich W. H. Kossebau
> 
> <kossebau at kde.org>wrote:
> > Hi,
> > 
> > so I have been progressing a little bit with the CDR import filter, I
> > know more and more about the format. Still not enough to render the
> > first things in
> > their place, but e.g. I can now access all raw text, both from graphic
> > text objects as block text objects.
> > 
> > I also turned to stream some SVG as output from the filter, as I could
> > not create a Karbon working-memory document directly without many
> > hacks.
> > 
> > Just, I have found out now that mapping to SVG as a native Karbon format
> > does
> > not really work, without losing information. In CDR possible, but not
> > Karbon:
> > * multiple pages
> > * text block element (non-graphic text)
> > * rectangles have more properties than svg rectangle shape¹
> > * objects can be auto-updated clones
> > 
> >  (not yet seen, just remember this feature)
> > 
> > ¹
> > http://libregraphicsworld.org/blog/entry/support-for-corel-draw-files-in
> > -
> > free-software-gets-another-chance (section "The hard part")
> > 
> > So what do I do about that? For the rectangles I would have guessed I
> > could try to write a custom shape which supports all those properties.
> > The text blocks could have been the TextShape, but how would those be
> > loaded from SVG?
> > What about the multiple pages?
> > 
> > Also, seems there is no odg import filter for Karbon. Noone working on
> > this?
> > ODG (which seems to also support multiple pages, at least LibreOffice
> > draw allows this) not yet supported?
> 
> Odg is a native format in Karbon. You can open any odg files, the only
> limitation is that only one page is opened. Flow can open odg files with
> multiple pages. That's also a reason why in earlier discussion it was
> suggested to convert to a file and not directly to the memory model. That
> way Karbon and Flow could make use of the filter.
> 
> SVG doesn't support multiple pages. With odg pages and text blocks could be
> done much better. So I would suggest that you try to use odg as target file
> format.

Ah, I have not seen (maybe did not long good enough) an existing filter 
creating an ODG stream, only SVG-creating ones. Okay, will switch to stream an 
ODG then.

> That would also have the advantage that LibreOffice and Calligra could use
> it. With the same target format it would be possible to merge your work and
> libcdr, so the whole work could be shared.

Yep, or at least to compare better what the two codebases are doing :) Though 
they have different approaches: libcdr reads the data element by element, 
while my filter reads complete RIFF chunks one-by-one and maps 
pointer/references of the proper structs onto the chunk to access the 
elements. Having these two variants is also a nice experiment to see which 
approach works out better.

Thanks for the answer! :)
Friedrich



More information about the calligra-devel mailing list