Python/Scribus: manipulando os objetos da página

Console Python do programa de editoração Scribus.

Programa de editoração Scribus e o console Python.

Para conhecer e manipular os elementos de uma página, no Scribus, uso o comando Python “getPageItems”. Abro o terminal Python (menu Script > Mostrar console), apago as linhas iniciais e digito:

t = getPageItems()

Depois, rodo o comando com a tecla F9. Este comando getPageItems atribui à variável “t” uma lista com os objetos da página. Cada elemento da página do Scribus tem um conjunto (“tuple“) de três elementos. O comando “print t” imprime a lista de elementos:

print t

O resultado, na janela de baixo do terminal Python, seria este:

[('Texto8', 4, 0), ('Texto9', 4, 1), ('Imagem10', 2, 2), ('Texto11', 4, 3), ('Texto12', 4, 4), ('Polxedgono13', 6, 5), ('Linha14', 5, 6), ('Linha poligonal15', 7, 7), ('Imagem16', 2, 8), ('Polxedgono17', 6, 9), ('Polxedgono18', 6, 10), ('Polxedgono19', 6, 11), ('Linha poligonal20', 7, 12)]
  • O primeiro elemento da tuple é o nome do objeto
  • O segundo elemento da tuple é o tipo de objeto (4 = texto, 2 = imagem)
  • O terceiro elemento da tuple é a ordem na página.

Veja na imagem o console Scribus/Python com o comando e o resultado. A lista obtida com o comando getPageItems pode ser manipulada em um laço “for“, por exemplo:

it = getPageItems()
for nome,tipo,ordem in it:
	print nome,"==>",tipo,"-->",ordem

O resultado do código acima seria como isto:

Texto8 ==> 4 --> 0
Texto9 ==> 4 --> 1
Imagem10 ==> 2 --> 2
Texto11 ==> 4 --> 3
Texto12 ==> 4 --> 4
Polígono13 ==> 6 --> 5
Linha14 ==> 5 --> 6
Linha poligonal15 ==> 7 --> 7
Imagem16 ==> 2 --> 8
Polígono17 ==> 6 --> 9
Polígono18 ==> 6 --> 10
Polígono19 ==> 6 --> 11
Linha poligonal20 ==> 7 --> 12

Com estes elementos, torna-se possível se descobrir o tipo de objeto, seu nome, e sua ordem na página. O código-exemplo a seguir lista os objetos de texto com seus nomes:

itensDaPagina=getPageItems()
for nome,tipo,ordem in itensDaPagina:
	if tipo == 4:
		print nome + " é texto."

O resultado seria:

Texto1 é texto.
Texto2 é texto.
Texto3 é texto.
Texto4 é texto.
Texto5 é texto.

De posse de seu tipo e seu nome, outros comandos podem descobrir quais os outros atributos dos objetos. E criar, modificar e destruir objetos como textos, fotos, botões PDF.

Bilbiografia

  1. ROSSUM, Guido Van. Python Tutorial. Capítulo 4, More control flow tools, FOR statements. Site web disponível em: <http://www.python.org/doc/2.4.4/tut/node6.html#SECTION006200000000000000000>. Acesso em 25. jul. 2008.
  2. SCRIBUS. Arquivo de ajuda. Versão 1.3.3.12. Capítulo For Developers, seção Scripter API, página Page Comands. Disponível no programa através da tecla F1.

Sobre José Antonio 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.