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.

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.