
Librsvg's text support is known to suck, and it's something that we plan to improve before our 3.0 release. Bug reports and patches are, of course, welcome.
You are welcome to have Inkscape's text layout code if it would help. As far as I know all the really interesting bits only have three people's code in them so it shouldn't be too hard to re-licence under the LGPL.
There are a few things that would need to be looked at:
- The binding to Inkscape's css system is a bit tighter than you would like it to be, but it shouldn't be too hard to fix given that most of it is isolated in one file.
- The font management backend is coupled to the rendering engine a bit, but you're going to want to swap both out for Cairo anyway.
- It is written to maintain state for the purpose of editable text, so (presuming memory usage is important to you) there would need to be hooks added to flush each line as it is finished, rather than saving everything for one big batch render at the end. I don't think you can go smaller than a line while still keeping the ability to do bidirectional text and text on a path.
- If you've been relying on your graphics library for polygon rasterisation you might not have all the capabilities needed for flowtext to work, if you're interested in that.
Other than that, all the external interfaces are fairly neat (well, I think so anyway) and any help you need, up to and including coding, give me a shout (with the caveat that I'd prefer not to have to learn a significant percentage of the librsvg codebase).
Richard.