{"id":409,"date":"2008-07-24T23:38:07","date_gmt":"2008-07-25T02:38:07","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=409"},"modified":"2008-07-25T23:16:49","modified_gmt":"2008-07-26T02:16:49","slug":"pythonscribus-manipulando-os-objetos-da-pagina","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2008\/07\/24\/pythonscribus-manipulando-os-objetos-da-pagina\/","title":{"rendered":"Python\/Scribus: manipulando os objetos da p\u00e1gina"},"content":{"rendered":"<div id=\"attachment_412\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2008\/07\/scribus-python-console.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-412\" class=\"size-medium wp-image-412\" title=\"Programa de editora\u00e7\u00e3o Scribus e o console Python.\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2008\/07\/scribus-python-console-300x234.jpg\" alt=\"Console Python do programa de editora\u00e7\u00e3o Scribus.\" width=\"300\" height=\"234\" srcset=\"https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2008\/07\/scribus-python-console-300x234.jpg 300w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2008\/07\/scribus-python-console-150x117.jpg 150w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2008\/07\/scribus-python-console.jpg 737w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-412\" class=\"wp-caption-text\">Programa de editora\u00e7\u00e3o Scribus e o console Python.<\/p><\/div>\n<p>Para conhecer e manipular os elementos de uma p\u00e1gina, no <a title=\"Site do programa de editora\u00e7\u00e3o\" href=\"http:\/\/www.scribus.net\/\">Scribus<\/a>, uso o comando Python &#8220;getPageItems&#8221;. Abro o terminal <a href=\"http:\/\/python.org\">Python<\/a> (menu Script &gt; Mostrar console), apago as linhas iniciais e digito:<!--more--><\/p>\n<pre>t = getPageItems()<\/pre>\n<p>Depois, rodo o comando com a tecla <kbd>F9<\/kbd>. Este comando <strong>getPageItems <\/strong>atribui \u00e0 vari\u00e1vel &#8220;t&#8221; uma lista com os objetos da p\u00e1gina. Cada elemento da p\u00e1gina do Scribus tem um conjunto (&#8220;<em>tuple<\/em>&#8220;) de tr\u00eas elementos. O comando &#8220;print t&#8221; imprime a lista de elementos:<\/p>\n<pre>print t<\/pre>\n<p>O resultado, na janela de baixo do terminal Python, seria este:<\/p>\n<pre>[('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)]<\/pre>\n<ul>\n<li>O primeiro elemento da <em>tuple <\/em>\u00e9 o nome do objeto<\/li>\n<li>O segundo elemento da <em>tuple <\/em>\u00e9 o tipo de objeto (4 = texto, 2 = imagem)<\/li>\n<li>O terceiro elemento da <em>tuple <\/em>\u00e9 a ordem na p\u00e1gina.<\/li>\n<\/ul>\n<p>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\u00e7o &#8220;<strong>for<\/strong>&#8220;, por exemplo:<\/p>\n<pre>it = <strong>getPageItems()<\/strong>\r\n<strong>for <\/strong>nome,tipo,ordem <strong>in <\/strong>it:\r\n\t<strong>print <\/strong>nome,\"==&gt;\",tipo,\"--&gt;\",ordem<\/pre>\n<p>O resultado do c\u00f3digo acima seria como isto:<\/p>\n<pre>Texto8 ==&gt; 4 --&gt; 0\r\nTexto9 ==&gt; 4 --&gt; 1\r\nImagem10 ==&gt; 2 --&gt; 2\r\nTexto11 ==&gt; 4 --&gt; 3\r\nTexto12 ==&gt; 4 --&gt; 4\r\nPol\u00edgono13 ==&gt; 6 --&gt; 5\r\nLinha14 ==&gt; 5 --&gt; 6\r\nLinha poligonal15 ==&gt; 7 --&gt; 7\r\nImagem16 ==&gt; 2 --&gt; 8\r\nPol\u00edgono17 ==&gt; 6 --&gt; 9\r\nPol\u00edgono18 ==&gt; 6 --&gt; 10\r\nPol\u00edgono19 ==&gt; 6 --&gt; 11\r\nLinha poligonal20 ==&gt; 7 --&gt; 12<\/pre>\n<p>Com estes elementos, torna-se poss\u00edvel se descobrir o tipo de objeto, seu nome, e sua ordem na p\u00e1gina. O c\u00f3digo-exemplo a seguir lista os objetos de texto com seus nomes:<\/p>\n<pre>itensDaPagina=getPageItems()\r\nfor nome,tipo,ordem in itensDaPagina:\r\n\tif tipo == 4:\r\n\t\tprint nome + \" \u00e9 texto.\"<\/pre>\n<p>O resultado seria:<\/p>\n<pre>Texto1 \u00e9 texto.\r\nTexto2 \u00e9 texto.\r\nTexto3 \u00e9 texto.\r\nTexto4 \u00e9 texto.\r\nTexto5 \u00e9 texto.<\/pre>\n<p>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\u00f5es PDF.<\/p>\n<h3>Bilbiografia<\/h3>\n<ol>\n<li>ROSSUM, Guido Van. Python Tutorial. Cap\u00edtulo 4, More control flow tools, <strong>FOR statements<\/strong>. Site web dispon\u00edvel em: &lt;<a href=\"http:\/\/www.python.org\/doc\/2.4.4\/tut\/node6.html#SECTION006200000000000000000\">http:\/\/www.python.org\/doc\/2.4.4\/tut\/node6.html#SECTION006200000000000000000<\/a>&gt;. Acesso em 25. jul. 2008.<\/li>\n<li>SCRIBUS. Arquivo de ajuda. Vers\u00e3o 1.3.3.12. Cap\u00edtulo For Developers, se\u00e7\u00e3o Scripter API, p\u00e1gina <strong>Page Comands<\/strong>. Dispon\u00edvel no programa atrav\u00e9s da tecla F1.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Para conhecer e manipular os elementos de uma p\u00e1gina, no Scribus, uso o comando Python &#8220;getPageItems&#8221;. Abro o terminal Python (menu Script &gt; Mostrar console), apago as linhas iniciais e [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,14,16],"tags":[],"class_list":["post-409","post","type-post","status-publish","format-standard","hentry","category-editoracao","category-python","category-scribus"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}