[scribus] Printing via script

Lars Behrens lars.behrens at kit.edu
Fri Mar 23 12:20:18 UTC 2012


Lars Behrens schrieb:
> Hi there,
>
> I'm just trying to find out how to print a file via the scripting
> environment (Need to export to PS and then do some GS things afterwards)

>
> I found this snippet:
>
> ---------------------------
> myprinter=scribus.Printer()
> myprinter.pages=[1]
> myprinter.printNow()
> ---------------------------
>
> which works well with the preselected printer and preselected settings.
> But how can one adjust the settings or choose a different printer?
>
> Maybe someone can point me to where I can find out how? I have searched
> the internet all up and down :-)

To answer my own question and for the mailing list record:

I looked through the scribus sources and in 
scribus/plugins/scriptplugin/objprinter.cpp there is:

----------------------------------------------------------------------
typedef struct
{
         PyObject_HEAD
         PyObject *allPrinters; // list of strings - names of installed 
printers
         PyObject *printer;  // string - selected printer
         PyObject *file;  // string - name of file to print into (eg. 
output.ps)
         PyObject *cmd; // string - if "" use standard command else use 
this as command (eg. "kprinter", "xpp" ...)
         PyObject *pages; // list of integers - pages to be printed
         int copies; // numer of printed copies
         PyObject *separation; // string - No; All; Cyan; Magenta; 
Yellow; Black
         int color; // bool - do we print in color=1 or greyscale=0
         int useICC; // bool - do we use ICC Profiles 0 = No 1 = Yes
         int pslevel; // integer - 1, 2 or 3 level of used postscript
         int mph; // bool - mirror pages horizontally
         int mpv; // bool - mirror pages vertically
         int ucr; // bool - Under Color Removal
} Printer;
-------------------------------------------------------------------


So using my snippet from above a greyscale print of page No. 1 into a ps 
file could look like

---------------------------
myprinter=scribus.Printer()
myprinter.file='/tmp/Test.ps'
myprinter.pages=[1]
myprinter.copies = 1
myprinter.color = 0
myprinter.printNow()
--------------------------

or two color copies to a certain printer:

----------------------------------
myprinter=scribus.Printer()
myprinter.printer='certain_printer'
myprinter.pages=[1]
myprinter.copies = 2
myprinter.color = 1
myprinter.printNow()
----------------------------------

What do you folks think, should I post that in the wiki (will share the 
script there anyways, when it's done)?

Cheerz,
Lars




More information about the scribus mailing list