Scribus: funções Scripter de propriedades dos objetos

Existem funções no Scripter do Scribus (interpretador Python do Scribus) que permitem grande controle sobre as propriedades dos objetos. Para se saber todas as propriedades, usa-se a função:

propriedades = scribus.getPropertyNames(getSelectedObject())

Isto devolve a lista de todas as propriedades dos objetos:

  1. objectName
  2. itemName
  3. fillColor
  4. lineColor
  5. fillShade
  6. lineShade
  7. fillTransparency
  8. lineTransparency
  9. m_Locked
  10. m_SizeLocked
  11. m_ImageIsFlippedV
  12. m_ImageIsFlippedH
  13. lineWidth
  14. customLineStyle
  15. startArrowIndex
  16. endArrowIndex
  17. m_PrintEnabled
  18. xPos
  19. yPos
  20. width
  21. height
  22. rotation
  23. imageXScale. Escala relativa a 72 pt por polegada.
  24. imageYScale
  25. imageXOffset
  26. imageYOffset
  27. reversed
  28. cornerRadius
  29. textToFrameDistLeft
  30. textToFrameDistRight
  31. textToFrameDistTop
  32. textToFrameDistBottom
  33. ColGap
  34. Cols
  35. firstLineOffset
  36. itemType

Nem todas estas propriedades são aplicáveis a todos os objetos. Algumas são específicas de objetos de texto, ou de objetos gráficos, quadros de fotos etc.

Para obter o deslocamento de uma foto, por exemplo, usa-se a função:

x =  scribus.getProperty(getSelectedObject(),'imageXOffset')
y = scribus.getProperty(getSelectedObject(),'imageYOffset')

Para listar todas as propriedades, posso usar o seguiinte código Python:

props=scribus.getPropertyNames(getSelectedObject())
for propriedade in props:
   try:
     print propriedade,":",scribus.getProperty(getSelectedObject(),propriedade)
   except:
     print ''

Isto gera a lista:

objectName :
itemName : Texto1
fillColor : None
lineColor : None
fillShade : 100.0
lineShade : 100.0
fillTransparency : 0.0
lineTransparency : 0.0
m_Locked : False
m_SizeLocked : False
m_ImageIsFlippedV : False
m_ImageIsFlippedH : False
lineWidth : 0.0
customLineStyle :
startArrowIndex : 0
endArrowIndex : 0
m_PrintEnabled : True
xPos : 142.52
yPos : 62.52
width : 255.117795276
height : 187.086299213
rotation : 0.0
imageXScale : 1.0
imageYScale : 1.0
imageXOffset : 0.0
imageYOffset : 0.0
reversed : False
cornerRadius : 0.0
textToFrameDistLeft : 0.0
textToFrameDistRight : 0.0
textToFrameDistTop : 0.0
textToFrameDistBottom : 0.0
ColGap : 0.0
Cols : 1
firstLineOffset :
itemType : 4

O comando try/except é para o código continuar após um bug do Scripter ( TypeError: Não foi possível converter o tipo de resultado ”.) que acontece quando se usa a função:

scribus.getProperty(getSelectedObject(),'firstLineOffset')

Modificando proprieidades

Também é possível se definir as propriedades de um objeto selecionado:

scribus.setProperty(getSelectedObject(),'imageYOffset',72.0)

Neste exemplo, defino o deslocamento Y (vertical) de uma imagem em relação ao seu quadro de imagem. O valor deve ser número tipo double, por isso deve ter ponto decimal. Caso contrário, seria considerado inteiro e geraria erro. Este valor é relativo aos dots per inch (DPI) da imagem, não relativo ao documento Scribus. Por exemplo, o valor 72 irá deslocar a imagem uma polegada se a imagem estiver a 72 DPI, e meia polegada se a imagem estiver a 144 DPI.

Um atributo de objeto importante, que foi deixado de fora, é o ponto de rotação dos objetos. Ele parece ser um atributo global do documento Scribus, não do objeto. Isto pode levar a comportamentos indesejáveis dos scripts, se for modificado do default (canto superior esquerdo). Isto acontece no meu script para criar foto+legenda+crédito.

Bibliografia

Sobre José Antonio Meira da Rocha

Jornalista, professor de Planejamento Gráfico e Mídias Digitais da Universidade Federal de Santa Maria, campus da cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutorando em Design na UFRGS, Porto Alegre, Brasil, 2014.