[scribus] recalculation of overflow is not correct

Chantal Rosmuller chantal at antenna.nl
Tue Mar 3 09:12:46 CET 2009


Great thanks! I'll try it this afternoon.

The value of 1000 was just an example, and the debugging works for me because 
i run the script from the script console. But the message boxes are a good 
idea anyway I'll have a look at them.

On Tuesday 03 March 2009 09:16:29 Patrick Wallace wrote:
> Chantal on scribus-request at lists.scribus.net wrote:
> > Hi, I am writing a script that loops through textboxes in a document and
> > resizes them until the frame fits.
>
> Your script was not finished as it just attempted to add a single value
> to the height of the text frames.
> I cleaned up and simplified the logic and here is a working version of
> your first draft for you to study and
> continue to develop toward your goal. (You will probably want to use a
> while-loop testing OverFlowChar.)
>
> For debugging, you cannot use print statements (you won't see them in
> Scribus), so it might be more useful to
> insert scribus.messageBox() commands to see intermediate variables, etc.
>
> Below, the script just adds 10 to the height (1,000 was way too big) and
> I have verified that
> the script runs and performs as expected in Scribus 1.3.5svn.
>
> # ---------------------------------------------------#
> # 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)
>
> pagenum = scribus.pageCount()	                        # find out how many
> pages we have page = 1						# initialize at first page
> InitialAddition=10                                      # define how much
> to add to text frames
>
> while (page <= pagenum):
>      scribus.gotoPage(page)                             # move to the
> current page ItemsOnpage = scribus.getPageItems()               # how many
> items are on this page for CurrentItem in ItemsOnpage:                    #
> loop all items CurrentItemType=CurrentItem[1]
>           if CurrentItemType == 4:                      # type 4 is text
> frame. We only bother with them. CurrentItemName = CurrentItem[0]          
> # get this frame's name so we can manipulate it OverflowChar =
> scribus.textOverflows(CurrentItemName) if OverflowChar > 0:
>                    (CurrentItemwidth, CurrentItemheight) =
> scribus.getSize(CurrentItemName)      # get width, height
> scribus.sizeObject(CurrentItemwidth,CurrentItemheight+InitialAddition,Curre
>ntItemName) # increase height page += 1	     # increment to the next page
> (good programmers do this at the END of while loops)
>
>
>
>
> _______________________________________________
> scribus mailing list
> scribus at lists.scribus.net
> http://lists.scribus.net/mailman/listinfo/scribus




More information about the scribus mailing list