[scribus] Patch submitted for Command Line Arguments to be passed to python script

Gregory Pittman gpittman at iglou.com
Sun Sep 13 15:13:18 UTC 2015


On 09/13/2015 10:28 AM, JLuc wrote:
> Le 13/09/2015 16:03, Gregory Pittman a écrit :
>> I have a script which requires a variable S (which in this case is a Zip
>> code). It previously got this from a valueDialog. I commented out the
>> valueDialog line.
>> I tried to run it with
>> scribus -g -py postnet.py --python-arg -S 40207
>> and when it runs it tells me there is no value for S.
>> Maybe I don't understand what a 'python-arg' is.
> 
> did you test -S or S ?
> plz share your script for better answers.
> 
> if you pass -S, -S should be tested, not S
> as demonstrated in the example script
> and explained in the wiki article.
> 

Here is my script. The only input needed is the variable S.

Greg

#!/usr/bin/env python

# File: postnet3.py
# originally 2006.03.06  Gregory Pittman
# this version 2015.09.12
# adds the correction code:
# the sum of all the digits
# must be divisible by 10

import sys
import scribus

postcode =
['llsss','sssll','sslsl','sslls','slssl','slsls','sllss','lsssl','lssls','lslss']
a = 1.44      #line width
b="Black"     #line color
relx=47      #Start X
rely=323      #Start Y
correctnum = 0

if scribus.newDocument(scribus.PAPER_LETTER,
(10,10,20,20),scribus.PORTRAIT, 1, scribus.UNIT_POINTS,
scribus.NOFACINGPAGES, scribus.FIRSTPAGERIGHT, 1):
#    S = scribus.valueDialog('Postnet Barcode','Enter your Zip or Zip+4')
    scribus.setRedraw(1)
    scribus.setUnit(0)
    d = scribus.createLine(relx,rely,relx+9,rely,) #Beginning long
framing line
    scribus.setLineWidth(a, d)
    scribus.setLineColor(b, d)
    scribus.setFillColor(b, d)
    rely = rely + 3.4
    for x in S[0:]:
        if x.isdigit():
            xnum = int(x)
            correctnum += xnum      # Building the sum of all the digits
            code = postcode[xnum]
            for y in code[0:]:
                if y == 'l':
                    d = scribus.createLine(relx,rely,relx+9,rely,) #Long
line
                    scribus.setLineWidth(a, d)
                    scribus.setLineColor(b, d)
                    scribus.setFillColor(b, d)
                    rely = rely + 3.4
                elif y == 's':
                    d = scribus.createLine(relx,rely,relx+3.6,rely,)
#short line
                    scribus.setLineWidth(a, d)
                    scribus.setLineColor(b, d)
                    scribus.setFillColor(b, d)
                    rely = rely + 3.4
    correctstr = str(correctnum)  # Here is where the correction code is
added
    correctdig = int(correctstr[-1])
    if correctdig != 0:
        correctdig = 10 - correctdig
    code = postcode[correctdig]
    for y in code[0:]:
        if y == 'l':
            d = scribus.createLine(relx,rely,relx+9,rely,) #Long line
            scribus.setLineWidth(a, d)
            scribus.setLineColor(b, d)
            scribus.setFillColor(b, d)
            rely = rely + 3.4
        elif y == 's':
            d = scribus.createLine(relx,rely,relx+3.6,rely,) #short line
            scribus.setLineWidth(a, d)
            scribus.setLineColor(b, d)
            scribus.setFillColor(b, d)
            rely = rely + 3.4

    d = scribus.createLine(relx,rely,relx+9,rely,) #Ending long framing line
    scribus.setLineWidth(a, d)
    scribus.setLineColor(b, d)
    scribus.setFillColor(b, d)
    scribus.redrawAll()





More information about the scribus mailing list