Drawing Lines and Python "For loops"

From Scribus Wiki
Revision as of 00:35, 20 October 2005 by Timcera (talk | contribs) (Need an indented block after the "if NewDoc")
Jump to navigation Jump to search
This article is part of the Scripts series.

Here is another border, pretty useless but at least I am learnt a bit about Python - the 'for' loops need their following lines to be indented. Also helps to understand the x and y co-ordinates of Scribus

Introduces: CreateLine SetLineWidth SetLineColor and Python for loops.

 from scribus import *
 Margins = (10, 10, 10, 10)
 if NewDoc(Paper_A4, Margins, Portrait, 1, Points, NoFacingPages, FirstPageRight):

   #some constants
   a = 5      #line width
   b="Blue"
   m=33      #Fill shade, integer 0-100
   g60="Grey60"
   spx=30      #Start X
   spy=30      #Start Y
   a4w=595             #Width A4 getPageSize ?
   a4d=842             #depth A4 getPageSize ?

   #Draw the lines
   d = CreateLine(spx-a/2,spy,a4w-30+a/2,spy) #Top
   setLineColor(g60, d)
   setLineWidth(a, d)
   e = CreateLine(spx,spy,spx,a4d-27)  #LH vertical
   setLineWidth(a, e)
   setLineColor(g60, e)
   f = CreateLine(a4w-30,spy,a4w-30,a4d-27)	#RH vertical
   setLineWidth(a, f)
   setLineColor(g60, f)
   g = CreateLine(spx-a/2,a4d-27,a4w-30+a/2,a4d-27)#Bottom
   setLineWidth(a, g)
   setLineColor(g60, g)

   #Draw the "holes"
   for i in range(0,int(770/10)):
    l = CreateRect(spx+5,spy+10+10*i,10,5)
    setFillShade(m,l)
    setLineColor(g60,l)		
   for i in range(0,int(770/10)):
    k = CreateRect(a4w-45,spy+10+10*i,10,5)
    setFillShade(m,k)		
    setLineColor(g60,k)

   SaveDocAs("Fancy_border.sla") #Make sure this is writable