Scribus scripting: descobrindo o tipo de um objeto gráfico

Para sabermos o tipo de elemento selecionado no programa de editoração Scribus ainda não há um comando específico. No entanto, com os comandos Python existentes podemos criar uma função para fazer isto.

Para testar os comandos desta página, você deve usar o console Python embutido no Scribus. Chame-o pelo menu Script > Show console. O console mostra dois painéis. Os comandos digitados no painel de cima são executados com a tecla F9 e o resultado aparece no painel de baixo.

Existe um comando Python-Scribus para pegar o nome de um objeto:

x = scribus.getSelectedObject()

A variável x conterá uma string com o nome do objeto.

Existem comandos para listar todos os elementos de uma página. Tem o comando que lista só o nome dos objetos:

x = scribus.getAllObjects()

A variável x conterá uma lista com os nomes de todos os objetos na página.

Mas ainda não é isto que nos interessa. Precisamos saber os tipos dos elementos. Para isto, existe o comando:

itens = scribus.getPageItems()

Ele retorna uma lista com tuplas (grupos de parâmetros) com todos os itens da página atual. A tupla é  (nome, tipo, ordem).

Para listarmos os elementos, usamos a estrutura Python “for”:

for item in itens:
    print item

Podemos listar também individualmente cada elemento da tupla:

for item in itens:
    for elemento in item:
        print elemento

Ou então podemos listar só os nomes:

for item in itens:
    print item[0]

Ou os nomes e os tipos:

for item in itens:
    print item[0], item[1]

O resultado, dependendo que tenha a página,  pode ser algo como:

Group10 6
Image14 2
Text15 4
Text16 4
Render17 2
Polygon1827 7
Line19 5

Assim, por tentativa e erro, fico sabendo que os tipos são:

0: nada
1: nada
2: quadro de imagem ou renderização
3: nada
4: quadro de texto
5: linha reta
6: grupo ou retângulo ou polígono regular
7: polígono, curvas ou polilinha

Segundo o Help do Scribus, seção For Developers > Scribus Documento Format, os tipos são:

2 = Image
4 = Text
5 = Line
6 = Polygon
7 = Polyline
8 = Text on a path

Com estes comandos do Python e do Scribus já podemos criar uma função para pegar o tipo de um objeto. Basta descobrirmos o nome de um objeto selecionado, procurarmos a tupla do objeto na lista de objetos da página, e pegarmos o tipo do objeto dentro da tupla. Poderíamos chamar esta nova função de Astolfo Robledo, mas vamos chamá-la apenas de getObjectType, para preservar sua identidade. A função ficaria assim:

def getObjectType():
    objtype = 0
    obj = scribus.getSelectedObject()
    itens = scribus.getPageItems()
    for item in itens:
        if item[0] == obj:
            objtype = item[1]
            break
    return objtype

Esta função retorna zero se não houver objeto selecionado, e o número que designa o tipo do objeto, se houver algum selecionado.

Bilbiografia

  1. Arquivo Help do Scribus, For Developer, Scripter API. Acessível pela tecla F1 no Scribus.
  2. BORGES, Luiz Eduardo. Python para desenvolvedores. Rio de Janeiro: edição do autor, 2009.
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