Python/Scribus: manipulando os objetos da página

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.
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.

Recent Posts

Sempre faça um fotão

Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…

1 year ago

A corrupção dos tolos

João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…

4 years ago

Naomi who? Naomi Wu!

A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…

5 years ago

Raspagem de dados

A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…

5 years ago

Que estratégia político-terapêutica pára um governo deliroide?

Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…

6 years ago

Sua tia não é fascista, ela está sendo manipulada

Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…

6 years ago