All to Pixmap server

Alex Fiestas afiestas at kde.org
Thu Dec 29 16:30:51 GMT 2011


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 !





More information about the calligra-devel mailing list