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
- 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.
- 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.
Leave a Reply