Enlarge2Page

From Scribus Wiki
Revision as of 17:18, 26 March 2011 by Gpittman (talk | contribs)
Jump to navigation Jump to search
This article is part of the Scripts series.

This script takes a selected object, enlarges it to the page size, and places it at an X-Pos, Y-Pos of 0,0. Works for whatever units you are using, since it simply gets the information and uses your selected units.

There is error detection for no selected object, but also for more than one selected object. The script would actually work for more than one selected object, but the resizing/repositioning will only apply to one of the selected objects. If you have grouped objects no error is detected, but only the bounding box is affected – the items of the group are not changed in size or position. One warning: the basepoint needs to be in the upper left corner for positioning to work properly.

#!/usr/bin/env python
# -*- coding: utf-8  -*-

# Enlarge2Page.py
# this version 2011.03.26
# enlarges a selected object to the 
# size of the page
"""
Enlarge2Page.py

(c) 2011 Gregory Pittman 

A devilishly simple script (there are more lines for
detecting errors than for actually manipulating the
object) which enlarges a single selected object to 
size of the page and positions it at 0,0.

Assumes a basepoint in the upper left corner. Error detection
for no selected frame or more than one. Page units do not matter.

"""

import scribus

if scribus.haveDoc():
    if scribus.selectionCount() == 0:
        scribus.messageBox('Scribus - Script Error',
            "There is no object selected.\nPlease select one and try again.",
            scribus.ICON_WARNING, scribus.BUTTON_OK)
        sys.exit(2)
    if scribus.selectionCount() > 1:
        scribus.messageBox('Scribus - Script Error',
            "You have more than one object selected.\nPlease select only one and try again.",
            scribus.ICON_WARNING, scribus.BUTTON_OK)
        sys.exit(2)

    xdimension, ydimension = scribus.getPageSize()
    selectedframe = scribus.getSelectedObject()
    scribus.sizeObject(xdimension, ydimension, selectedframe)
    scribus.moveObjectAbs(0, 0, selectedframe)
    scribus.redrawAll()