Category:Scripts: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
Line 134: Line 134:


Scripts that are ready for achieving specific tasks
Scripts that are ready for achieving specific tasks
 
{|
* [[Export all text|Export all text]] from a Scribus file
|* [[Export all text|Export all text]] from a Scribus file
* [[Script Resize selected objects|Resize selected objects]]
* [[Script Resize selected objects|Resize selected objects]]
* [[formatxml|Import XML and apply styles]]
* [[formatxml|Import XML and apply styles]]
Line 142: Line 142:
* [[Bullets_and_numbered_lists|Bullets and numbered lists]]
* [[Bullets_and_numbered_lists|Bullets and numbered lists]]
* [[Scribus_Generator|Scribus Generator]] Extend Scribus with Mail Merge functionality
* [[Scribus_Generator|Scribus Generator]] Extend Scribus with Mail Merge functionality
* [[Image crop, resize and CMYK conversion. Save and reload in TIFF format]]
|* [[Image crop, resize and CMYK conversion. Save and reload in TIFF format]]
* [[Image crop, resize and color conversion GUI]]
* [[Image crop, resize and color conversion GUI]]
* [[Apply basic ligatures to a document]]
* [[Apply basic ligatures to a document]]
Line 148: Line 148:
* [[Automatic story formatting]]
* [[Automatic story formatting]]
* [[Clean-up the imported text based on the Slovak typographic rules]]
* [[Clean-up the imported text based on the Slovak typographic rules]]
|}


==Scripting new Scribus' functions==
==Scripting new Scribus' functions==

Revision as of 15:10, 8 November 2016

Other languages: Polski (pl) Portuguese (pt_BR)

Scripter

Here is 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

This wiki is capable of letting users download raw code embedded into the pages and have it appear syntax highlighted.

  • So as to cite python script code with proper syntax hilight, use the following tag <syntaxhighlight lang='python'> instead of using the usual HTML tag <pre>.
  • See example and other possible tags : Wikitext for Raw Code Download

Note : A new script engine is currently being integrated into Scribus. The next steps will be to get the script engine to work (should already be ok), get the editor to work, revise the structure of the API, add new functions to the API and mostly : port scripts to the new scripter. See Scripter NG non-complete documentation about architecture

Pure Python Functions

The open() function is a pure python function and does not involve any Scribus code. Here are some pages with advices on how to handle unicode file names in python:

- http://docs.python.org/tutorial/inputoutput.html - http://www.evanjones.ca/python-utf8.html - http://boodebr.org/main/python/all-about-python-and-unicode

The string returned by the Scribus fileDialog() function is always Unicode UTF-8 encoded.

If file is not closed after python error within Scribus: This is up to you to handle python exceptions, Scribus cannot do that in your place

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. Use it as a starting point for writing your own script, fill in your application specific code. script template main(). There is also a template called boilerplate.py within Scribus Script directory.

Troubleshooting Scripts

The content is on another page, since this one has gotten a bit out of control in terms of its size.

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 '\nFUNCTION:\n'+j+'\n\nSYNTAX:'
           print res
   except: pass

Image Manipulation

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

Beginners Scripts

This content has been moved to a separate page to reduce the enormity of this one.

Basic scripts

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

Full functional scripts

Scripts that are ready for achieving specific tasks

* Export all text from a Scribus file * 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

Extension scripts and PyQt

Python issues

Other

Pages in category "Scripts"

The following 103 pages are in this category, out of 103 total.