Criando margens à Gutemberg
From Scribus Public Wiki
| Scripts para iniciantes • Scripts de extensão/PyQt • Questões sobre Py • Plugins • Outros |
Versão em inglês.
[edit] Básico
Este script cria margens proporcionais ao estilo Gutemberg, baseando-se no valor da margem esquerda. O Scribus automaticamente espelhará as margens em documentos de páginas espelhadas. Agora, o script serve apenas para efeitos didáticos de programação Scribus, porque o programa já incorpora margens Gutemberg em documentos espelhados, em suas novas versões a partir da 1.3.3.
#!/usr/bin/env python2.3
# -*- coding: utf-8 -*-
"""Gerando margens a lá Gutemberg.
"""
import sys
TITLE = "Gerar Magens"
noDocMsg = "<h2>Primeiro, abra um doc</h2>Este script somente funciona com documentos abertos.\
<b>Abra um document</b> antes de executar este script."
runningMsg = "Executando script..."
noScribusMsg = "Este script Phython foi feito apenas para o Scribus.\
\nVai executar apenas com o Scribus."
try:
import scribus
except ImportError,err:
print noScribusMsg
sys.exit(1)
from scribus import UNIT_POINTS,BUTTON_OK,ICON_WARNING
def main(argv):
"""Generate margins"""
if scribus.haveDoc():
scribus.setRedraw(False)
unit = scribus.getUnit() # salva unidade padrão/original
scribus.setUnit(UNIT_POINTS) # trabalhando com pontos devido a um bug no getPageMargins
pageWidth, pageHeight = scribus.getPageSize()
ratio = pageHeight / pageWidth
topMargin, leftMargin, rightMargin, bottomMargin = scribus.getPageMargins()
topMargin = leftMargin * ratio
rightMargin = leftMargin * 2
bottomMargin = rightMargin * ratio
scribus.setMargins(leftMargin, rightMargin, topMargin, bottomMargin)
scribus.setUnit(unit) # retorna para unidade original/padrão
else:
scribus.messageBox(TITLE, noDocMsg, ICON_WARNING, BUTTON_OK)
def main_wrapper(argv):
try:
scribus.statusMessage(runningMsg)
scribus.progressReset()
main(argv)
finally:
if scribus.haveDoc():
scribus.setRedraw(True)
scribus.statusMessage("")
scribus.progressReset()
if __name__ == '__main__':
main_wrapper(sys.argv)

