Criando margens à Gutemberg

From Scribus Wiki
Jump to: navigation, search
Este artigo é parte da seção de Scripts_e_Plugins.
Scripts para iniciantes Scripts de extensão/PyQt Questões sobre Py Plugins Outros
Voltar para a página principal

Versão em inglês.

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)