Although, there are scripts on scribus.net that do this, they were not working for me with Scribus 1.4.2, no matter what I tried. This has led me to do two things: rewrite the script, and use it on Scribus 1.5 SVN, where it works. The interface on the newer version is smoother and faster, and thus far, I haven’t hit any bugs.

Here is the script, make sure you have nothing but image frames selected:

from scribus import *
import os

if haveDoc():
    objList = []

    for i in range(selectionCount()):
        objList.append(getSelectedObject(i))

    for obj in objList:
        #setScaleImageToFrame(confined to frame = bool, proportional = bool, name)
        setScaleImageToFrame(True, False, obj)
        scaleX, scaleY = getImageScale(obj)
        setScaleImageToFrame(False, True, obj)
        if scaleX > scaleY:
            scale = scaleX
            setImageScale(scale, scale, obj)
        elif scaleY > scaleX:
            scale = scaleY
            setImageScale(scale, scale, obj)

    docChanged(1)
    setRedraw(True)

 

Update: I tried to open my 40 – some graphics intensive pages of my portfolio layout in 1.5 svn, and it is so sluggish, that it was unusable yet. For the 3 pages of images I was doing the testing on, it seemed fine, but it doesn’t seem that it’s optimised enough for larger documents. Or perhaps, if i were to start initially in 1.5 as opposed to 1.4.2, it may have been different.