On Monday 02 March 2009 14:29:08 Gregory Pittman wrote: > Chantal Rosmuller wrote: > > 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 > > > > _______________________________________________ > > You think you have resized, but apparently not. > > I would try these things in sequence: > > 1. stick a getSize() command after your sizeObject() command. If nothing > else, it will let you know if you actually did resize. It may also cause > the sizeObject to take effect. > 2. put a redrawAll command after the sizeObject() command. > > Greg > > _______________________________________________ > scribus mailing list > scribus at lists.scribus.info > http://lists.scribus.info/mailman/listinfo/scribus
Hi, I tried both: redrawall does not help. getsize tells me the size increased but the overflow value stays the same. Is this a bug? Regards Chantal
