Hi, I am writing a script that loops through textboxes in a document and 
resizes them until the frame fits. However after resizing and re evaluating 
the overflow the script gives me the exact same number. How is that possible 
and what can I do about it?


# ---------------------------------------------------#
# check of het script vanuit scribus wordt gestart   #
#----------------------------------------------------#

import sys
try:
   import scribus

except ImportError:
   print "This script only works from within Scribus"
   sys.exit(1)

#Loop through the pages 
page = 1
pagenum = scribus.pageCount()
while (page <= pagenum):
     scribus.gotoPage(page)
     #go to the next page in the next loop
     page += 1
     #and get all pageitems, this function gets
     #name, obejcttype and ordre for eacht item
     #
     #objecttype 4 is textframe
     ItemsOnpage = scribus.getPageItems()
     #print pageitmes for debugging puprposes
     ItemsOnpage
     #count the number of items
     NumberItemsOnpageTotal=len(ItemsOnpage)
     #loop through items
     NumberItemsOnpage = 1
     while (NumberItemsOnpage <= NumberItemsOnpageTotal):
        #whe have arrays of itemproperties (name, obejcttype and ordre)
        #within arrays with items, first get the current itme number in the 
array
        #current item number is NumberItemsOnpage but counting in an array
        # starts with zero so subtract one
        NumberItemsOnpageArraynumber=NumberItemsOnpage-1
        #now move to the right item
        CurrentItem=ItemsOnpage[NumberItemsOnpageArraynumber]
        #the first value in the itemarray is the itemname
        CurrentItemName=CurrentItem[0]
        print CurrentItemName
        #the secund value is the itemtype
        CurrentItemType=CurrentItem[1]
        print CurrentItemType
        #type 4 is textbox
        if CurrentItemType == 4:
                print "this is a textbox"
                selectObject(CurrentItemName)
                OverflowChar = scribus.textOverflows(CurrentItemName)
                print "initial overflow"
                print OverflowChar
                if OverflowChar > 0:
                        (CurrentItemwidth, CurrentItemheight) = 
scribus.getSize(CurrentItemName)
                        InitialAddition=1000
                        ItemHeight=CurrentItemheight+InitialAddition
                        
scribus.sizeObject(CurrentItemwidth,ItemHeight,CurrentItemName)
                        ##OverflowChar = 0
                        ##print "overflow zero"
                        ##print OverflowChar
                        scribus.selectObject(CurrentItemName)
                        OverflowChar = scribus.textOverflows(CurrentItemName)
                        print "overflow after first adjustment"
                        print OverflowChar
        #go to the next item
        NumberItemsOnpage += 1


Reply via email to