[Scribus] Scribus cmdline import/export (patch)

Craig Ringer craig
Sun Sep 25 10:16:40 CEST 2005

On Sat, 2005-09-24 at 23:26 -0700, Bryce Harrington wrote:
> Hi Peter and Craig,
> A while back we discussed an idea of packaging the scribus pdf/ps
> import/export code for use with Inkscape, since Inkscape's pdf/ps
> (esp. EPS import) support is so poor.

Indeed. It's a nice idea. Much of the current PS/PDF import and export
code is very tightly Scribus specific though, and it all uses a lot of
Qt container classes etc. I'm not sure how practical that'd be.

> However it occurs to me that another solution would be to simply give
> scribus some commandline options for doing import/export.  E.g.
>     scribus -i filename.eps -e filename.svg

This has been desired for a long time. See
http://bugs.scribus.net/view.php?id=238 . We're still not at the point
where that's quite practical, though we're certainly getting there. 

Being able to do it without an X-server and with a low startup time may
well be post-Qt4-migration stuff though (Riku will know much more than
me about this).

> I looked into the scribus code a bit to see how this could be
> implemented.  I wasn't sure how to call the import/export plugins

As chance would have it, that's something I'm going to be working on
soon. There's just a pile of university stuff to deal with first.

For importers/exporters that already have plugins, you can use the
plugin manager to call them. There's code in fileloader.cpp for that,
but it might be a bit tricky to follow.

The general approach you could take is:

#include "scplugin.h"
#include "pluginmanager.h"

ScActionPlugin* plug = dynamic_cast<ScActionPlugin*>(PluginManager::instance().getPlugin("importps"));
if (plug)
    bool result = plug->run("/path/to/PS-file-to-import");
    // Act on result code
   // Inform the user that you couldn't do what they asked because
   // you couldn't access the required plugin.

There is currently no good way to enumerate supported formats, etc,
automatically. That's planned, though, and should hopefully happen
during 1.3.2cvs development.

Once that's done, your TODO should simply become a call into FileLoader.

Craig Ringer

More information about the scribus mailing list