Hi there

For those who don't know me my name is Alex Fiestas (afiestas), I have been KDE developer for 2/3 years and so far I have work on BlueDevil (Bluetooth), Kamoso (video), libsolid and I'm currently the manager of the Solid community.

I have been asked to develop a small server which will convert the most popular documents into pixmaps so they can be rendered quickly anywhere, I'm going to start the basic structure today but before I start with the document processing I'd like to ask you for advice :p

This is more or less what I know and what I have thought:

Requirements:
The server must be as fast as possible and reliable, so we must be prepare to handle crashes. The resulted document should be something standard such PNG or JPG.

Faster way I saw:
I have done some PoC using calligraconverter as base, the faster way I found without messing too much with Calligra internals is to use the private classes from each Calligra app to get the QWidget that will end rendering the page or the document, and then use QWidget::render to paint everything into a QPixmap.

I know that with this method I'm messing with internal parts of Calligra on where API or ABI is not guaranteed but if there is no other way of doing this that's a price I'm ok to pay.

Finally, since I'm using private classes from each app, I'm going to use a plug-in system.

Problems:
Since I'm using private API which is not exported I'm forced to clone the whole project, so atm what I'm going to do is to put the code into
tools/atopixmap and split the project into:

atopixmap: binary which will transform * to pixmap
atopixmapserver: small server that will fork for each request and will handle crashes, limits etc

Once the project is finished, I'd like to merge it back to calligra but that depends on you, not sure what is the policy on using private api.

Any feedback, advice, tips etc is welcomed !


_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to