Category:Scripts

Other languages: Polski (pl) Portuguese (pt_BR)

= Scripter =

Note: The new script engine "ScripterNG" is currently being integrated into Scribus. The next steps will be:
 * get the script engine to work (should already be ok)
 * get the editor to work (i'm stuck there)
 * revise the structure of the API
 * add new functions to the API


 * Scripter NG non-complete documentation about architecture

Here ist documentation about the current scripting component in Scribus:


 * Scripter API -- Routines which can be used in scripts to control Scribus
 * Databases -- Scripts can interact with database software like MySQL or SQLite
 * Alessandro Rimoldi's blog series on scripter functions - a_l_e's blog
 * [|How to make the snippets downloadables]

Script snippets
Needs some snippets

This section contains snippets you can use to create your own scripts.

It features:


 * reading a file
 * updating a status bar
 * selecting a frame
 * pausing the screen update

Script Template
Here is a script template with all setups (for writing your own script): main

Iterate over all elements on a page
page = 1 pagenum = scribus.pageCount content = [] while (page <= pagenum): scribus.gotoPage(page) d = scribus.getPageItems for item in d:       // do something page += 1

Get content like text from a frame
content = [] d = scribus.getPageItems for item in d:   if (item[1] == 4): contents = scribus.getAllText(item[0]) if (contents in content): contents = 'Duplication, perhaps linked-to frame' content.append(contents) elif (item[1] == 2): imgname = scribus.getImageFile(item[0])

ITEM TYPE
 * ItemType1 = 1,
 * ImageFrame = 2,
 * ItemType3 = 3,
 * TextFrame = 4,
 * Line = 5,
 * Polygon = 6,
 * PolyLine = 7,
 * PathText = 8,
 * LatexFrame = 9,
 * Multiple = 99

Auto-Output all Scripter Commands
From Scribus User http://meiradarocha.jor.br Mailinglist Feb. 2012 d = dir(scribus) for j in d:  try: exec 'res = '+j+'.__doc__' if res[0:5] == 'float': print '\nCONSTANT:\n',j,'\nVALUE: float' exec 'print '+j+'\n' elif res[0:5] == 'int(x':          print '\nCONSTANT:\n',j,'\nVALUE: integer'           exec 'print '+j+'\n'       elif res[0:5] == 'tuple':           print '\nTUPLE:\n',j,'\nVALUE:'           exec 'print repr('+j+')\n'       elif res[0:4] == 'str(': print '\nSTRING:\n',j,'\nVALUE:' exec 'print repr('+j+')\n' else: print '\FUNCTION:\n'+j+'\n\nSINTAX:' print res except: pass

Image Manipulation

 * Objects: Images -- Example Scripts that manipulate images in a Scribus document

Basic scripts
Scripts which give you ideas how you can solve your tasks.


 * Poor man's mail merge
 * Enlarge2Page - Enlarge an object to the size of the page.
 * Making Guides at an Object's Borders

Full functional scripts
Scripts that are ready for achieving specific tasks


 * Export all text from a Scribus file
 * Resize selected objects
 * Import XML and apply styles
 * Align to the left page margin (after adding a new page in a double page document)
 * Bullets Make bulleted list
 * Bullets and numbered lists
 * Scribus Generator Extend Scribus with Mail Merge functionality
 * Image crop, resize and CMYK conversion. Save and reload in TIFF format

Scripting new Scribus' functions
Scripts which sketch new features which may be included in future releases of Scribus


 * Adjust the text frame size according to various factors

Extension scripts and PyQt

 * Extension script discussion
 * Experimental PyQt projects

Python issues

 * Known Scripter Issues

= Other =
 * Extension_script_repository
 * Web optimised PDF &mdash; learn how to minimize PDF size, make your life easier with the included Perl script (runs outside of Scribus)
 * Imagemagick Imposition – a bash script doing simple imposition of PNG files exported from Scribus
 * Printing_4-up_tickets_to_hard_copy_printer Shows a) automatic numbering in text boxes and b) hard-copy printing from script
 * Using createParagraphStyle