Drawing Lines and Python "For loops"

From Scribus Wiki
Revision as of 07:49, 31 March 2005 by TomK32 (talk | contribs)
Jump to: navigation, 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