I'm acting as a bridge for Pino and Jan here, regarding a definitive solutions to the continuous poppler-pdf breakage due to our and karbon's use of poppler's internal helpers. Please remember to keep them both on Cc: when replying.
Date: Wed, 9 Dec 2009 23:54:43 +0100 From: Pino Toscano <pino@...1199...> To: inkscape-devel@lists.sourceforge.net, Jan Hambrecht <jaham@...240...> Subject: SVG output device for Poppler
Hello Jan (Karbon developer), Hello Inkscape developers,
(Jan and me are not subscribed to the Inkscape ML, so please remember to CC us in the replies.)
for those who do not know me, my name is Pino Toscano, and I am a KDE and Poppler developer.
I am writing you because of both Inkscape and Karbon use the core API of Poppler, but fundamentally to do the very same task: create SVGs for pages of a PDF document. Both the application do it using a custom OutputDev, Inkscape's one creating a XML document using the Inkscape API + GLib, while Karbon's one outputting the XML document to file using Qt4. As you also might know, Poppler's core is considered private, so not API- nor ABI- stable, so your work can break at any time, even on patch releases of Poppler (as you Inkscape developers already experienced).
So, my proposal is the following: if possible, join the forces and provide a C++-only (so no GLib nor Qt4, although libxml2 could be considered usable) SvgOutputDev directly in the Poppler core. The benefits would be clear: - single point of development for an SVG export for Poppler - nicely frontend wrapping (poppler-qt4 and poppler-glib) for the SVG export - no more Poppler core usage, less breakages!
The work needed would consist in the following steps: 1) develop a SvgOutputDev in the Poppler core (so in the Poppler repository) 2) add the wrapping API in the qt4 and glib frontends 3a) adapt Inkscape's filter to use the new API 3b) adapt Inkscape's filter to use the new API After looking briefly at the two filters, it seems 3a and 3b should be more or less trivial to do
If you would like to start the job (especially a), which is the most important step :) ), you are invited to join us at the Poppler mailing list; remember we (Poppler developers) can always offer support.