{"id":2007,"date":"2011-04-01T12:02:10","date_gmt":"2011-04-01T15:02:10","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=2007"},"modified":"2011-04-02T20:16:41","modified_gmt":"2011-04-02T23:16:41","slug":"como-ler-documentos-do-broffice-por-scripts-do-scribus","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2011\/04\/01\/como-ler-documentos-do-broffice-por-scripts-do-scribus\/","title":{"rendered":"Como ler documentos do BrOffice por scripts no Scribus"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-2018\" title=\"brooffice3\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/04\/brooffice3-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/04\/brooffice3-300x200.jpg 300w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/04\/brooffice3-150x100.jpg 150w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/04\/brooffice3.jpg 749w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>O Scribus importa documentos de texto do BrOffice \/ LibreOffice \/ OpenOffice.org, mas apenas manualmente, pelo menu &#8220;Arquivo &gt; Abrir&#8221;. Se quiser importar por\u00a0<em>script<\/em>, em alguma tarefa automatizada, tenho que usar o m\u00f3dulo Python apropriado.<\/p>\n<p>Este m\u00f3dulo \u00e9 o <strong>OOoPy<\/strong>, cujo projeto reside em http:\/\/sourceforge.net\/projects\/ooopy\/.<\/p>\n<p><span style=\"color: #ff0000;\">[N. do autor: artigo em expans\u00e3o]<\/span><\/p>\n<p>Para baixar e instalar o m\u00f3dulo OOoPy no Python de meu Ubuntu, abri o terminal e usei os seguintes comandos:<\/p>\n<pre>wget http:\/\/ufpr.dl.sourceforge.net\/project\/ooopy\/ooopy\/1.6.7680\/OOoPy-1.6.7680.tar.gz\r\ntar -vzxf .\/OOoPy-1.6.7680.tar.gz\r\ncd .\/OOoPy-1.6.7680\r\nsudo python setup.py install<\/pre>\n<p>Devo ajustar os n\u00fameros da vers\u00e3o mais nova, se tentar isto futuramente.<\/p>\n<p>O resultado da instala\u00e7\u00e3o, no Ubuntu, deve ser algo como:<\/p>\n<pre>running install\r\nrunning build\r\nrunning build_py\r\ncreating build\r\ncreating build\/lib.linux-i686-2.6\r\ncreating build\/lib.linux-i686-2.6\/ooopy\r\ncopying ooopy\/Transformer.py -&gt; build\/lib.linux-i686-2.6\/ooopy\r\ncopying ooopy\/OOoPy.py -&gt; build\/lib.linux-i686-2.6\/ooopy\r\ncopying ooopy\/Version.py -&gt; build\/lib.linux-i686-2.6\/ooopy\r\ncopying ooopy\/Transforms.py -&gt; build\/lib.linux-i686-2.6\/ooopy\r\ncopying ooopy\/__init__.py -&gt; build\/lib.linux-i686-2.6\/ooopy\r\nrunning build_scripts\r\ncreating build\/scripts-2.6\r\ncopying and adjusting ooo_as_text -&gt; build\/scripts-2.6\r\ncopying and adjusting ooo_cat -&gt; build\/scripts-2.6\r\ncopying and adjusting ooo_fieldreplace -&gt; build\/scripts-2.6\r\ncopying ooo_grep -&gt; build\/scripts-2.6\r\ncopying and adjusting ooo_mailmerge -&gt; build\/scripts-2.6\r\nchanging mode of build\/scripts-2.6\/ooo_as_text from 644 to 755\r\nchanging mode of build\/scripts-2.6\/ooo_cat from 644 to 755\r\nchanging mode of build\/scripts-2.6\/ooo_fieldreplace from 644 to 755\r\nchanging mode of build\/scripts-2.6\/ooo_mailmerge from 644 to 755\r\nrunning install_lib\r\ncreating \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\ncopying build\/lib.linux-i686-2.6\/ooopy\/Transformer.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\ncopying build\/lib.linux-i686-2.6\/ooopy\/OOoPy.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\ncopying build\/lib.linux-i686-2.6\/ooopy\/Version.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\ncopying build\/lib.linux-i686-2.6\/ooopy\/Transforms.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\ncopying build\/lib.linux-i686-2.6\/ooopy\/__init__.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\r\nbyte-compiling \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\/Transformer.py to Transformer.pyc\r\nbyte-compiling \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\/OOoPy.py to OOoPy.pyc\r\nbyte-compiling \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\/Version.py to Version.pyc\r\nbyte-compiling \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\/Transforms.py to Transforms.pyc\r\nbyte-compiling \/usr\/local\/lib\/python2.6\/dist-packages\/ooopy\/__init__.py to __init__.pyc\r\nrunning install_scripts\r\ncopying build\/scripts-2.6\/ooo_cat -&gt; \/usr\/local\/bin\r\ncopying build\/scripts-2.6\/ooo_mailmerge -&gt; \/usr\/local\/bin\r\ncopying build\/scripts-2.6\/ooo_fieldreplace -&gt; \/usr\/local\/bin\r\ncopying build\/scripts-2.6\/ooo_as_text -&gt; \/usr\/local\/bin\r\ncopying build\/scripts-2.6\/ooo_grep -&gt; \/usr\/local\/bin\r\nchanging mode of \/usr\/local\/bin\/ooo_cat to 755\r\nchanging mode of \/usr\/local\/bin\/ooo_mailmerge to 755\r\nchanging mode of \/usr\/local\/bin\/ooo_fieldreplace to 755\r\nchanging mode of \/usr\/local\/bin\/ooo_as_text to 755\r\nchanging mode of \/usr\/local\/bin\/ooo_grep to 755\r\nrunning install_data\r\ncreating \/usr\/local\/share\/ooopy\r\ncopying test.sxw -&gt; \/usr\/local\/share\/ooopy\r\ncopying carta.stw -&gt; \/usr\/local\/share\/ooopy\r\ncopying test.odt -&gt; \/usr\/local\/share\/ooopy\r\ncopying carta.odt -&gt; \/usr\/local\/share\/ooopy\r\ncopying rechng.sxw -&gt; \/usr\/local\/share\/ooopy\r\ncopying rechng.odt -&gt; \/usr\/local\/share\/ooopy\r\ncopying run_doctest.py -&gt; \/usr\/local\/share\/ooopy\r\ncopying x.csv -&gt; \/usr\/local\/share\/ooopy\r\nrunning install_egg_info\r\nWriting \/usr\/local\/lib\/python2.6\/dist-packages\/OOoPy-1.6.7680.egg-info<\/pre>\n<p>Para baixar e instalar no Windows, \u00e9 mais complicado. Como eu tenho o baixador wget e o compactador 7z, a sequ\u00eancia de comandos que usei foi:<\/p>\n<pre>wget http:\/\/ufpr.dl.sourceforge.net\/project\/ooopy\/ooopy\/1.6.7680\/OOoPy-1.6.7680.tar.gz\r\n\"%PROGRAMFILES%\"\\7-Zip\\7z.exe x OOoPy-1.6.7680.tar.gz\r\n\"%PROGRAMFILES%\"\\7-Zip\\7z.exe x -o\"%PROGRAMFILES%\"\\\"Scribus 1.3.9\"\\lib\\site-packages\\ OOoPy-1.6.7680.tar\r\ndel OOoPy-1.6.7680.tar<\/pre>\n<p>Executei o arquivo setup.py pelo Scribus Scripter (menu &#8220;Scrip &gt; Executar script..&#8221;, procurei o arquivo em %PROGRAMFILES%&#8221;\\&#8221;Scribus 1.3.9&#8243;\\lib\\site-packages\\OOoPy-1.6.7680\\setup.py).<\/p>\n<p>A seguir, copiei a pasta <strong>%PROGRAMFILES%&#8221;\\&#8221;Scribus 1.3.9&#8243;\\lib\\site-packages\\OOoPy-1.6.7680\\ooopy\\<\/strong> para a pasta <strong>%PROGRAMFILES%&#8221;\\&#8221;Scribus 1.3.9&#8243;\\lib\\site-packages<\/strong>. Este m\u00e9todo \u00e9 meio gambiarra, pois n\u00e3o cria o arquivo egg-info padr\u00e3o criado no Linux.<\/p>\n<p>Outra op\u00e7\u00e3o \u00e9 instalar o m\u00f3dulo no Python padr\u00e3o e copiar os arquivos instalados para o Python do Scribus:<\/p>\n<pre>c:\\&gt;cd \"c:\\Python26\\Lib\\site-packages\\OOoPy-1.6.7680\\\"\r\n\r\nC:\\Python26\\Lib\\site-packages\\OOoPy-1.6.7680&gt;c:\\Python26\\python.exe setup.py install\r\nrunning install\r\nrunning build\r\nrunning build_py\r\ncreating build\r\ncreating build\\lib\r\ncreating build\\lib\\ooopy\r\ncopying ooopy\\OOoPy.py -&gt; build\\lib\\ooopy\r\ncopying ooopy\\Transformer.py -&gt; build\\lib\\ooopy\r\ncopying ooopy\\Transforms.py -&gt; build\\lib\\ooopy\r\ncopying ooopy\\Version.py -&gt; build\\lib\\ooopy\r\ncopying ooopy\\__init__.py -&gt; build\\lib\\ooopy\r\nrunning build_scripts\r\ncreating build\\scripts-2.6\r\ncopying and adjusting ooo_as_text -&gt; build\\scripts-2.6\r\ncopying and adjusting ooo_cat -&gt; build\\scripts-2.6\r\ncopying and adjusting ooo_fieldreplace -&gt; build\\scripts-2.6\r\ncopying ooo_grep -&gt; build\\scripts-2.6\r\ncopying and adjusting ooo_mailmerge -&gt; build\\scripts-2.6\r\nrunning install_lib\r\ncreating c:\\Python26\\Lib\\site-packages\\ooopy\r\ncopying build\\lib\\ooopy\\OOoPy.py -&gt; c:\\Python26\\Lib\\site-packages\\ooopy\r\ncopying build\\lib\\ooopy\\Transformer.py -&gt; c:\\Python26\\Lib\\site-packages\\ooopy\r\ncopying build\\lib\\ooopy\\Transforms.py -&gt; c:\\Python26\\Lib\\site-packages\\ooopy\r\ncopying build\\lib\\ooopy\\Version.py -&gt; c:\\Python26\\Lib\\site-packages\\ooopy\r\ncopying build\\lib\\ooopy\\__init__.py -&gt; c:\\Python26\\Lib\\site-packages\\ooopy\r\nbyte-compiling c:\\Python26\\Lib\\site-packages\\ooopy\\OOoPy.py to OOoPy.pyc\r\nbyte-compiling c:\\Python26\\Lib\\site-packages\\ooopy\\Transformer.py to Transformer.pyc\r\nbyte-compiling c:\\Python26\\Lib\\site-packages\\ooopy\\Transforms.py to Transforms.pyc\r\nbyte-compiling c:\\Python26\\Lib\\site-packages\\ooopy\\Version.py to Version.pyc\r\nbyte-compiling c:\\Python26\\Lib\\site-packages\\ooopy\\__init__.py to __init__.pyc\r\nrunning install_scripts\r\ncopying build\\scripts-2.6\\ooo_as_text -&gt; c:\\Python26\\Scripts\r\ncopying build\\scripts-2.6\\ooo_cat -&gt; c:\\Python26\\Scripts\r\ncopying build\\scripts-2.6\\ooo_fieldreplace -&gt; c:\\Python26\\Scripts\r\ncopying build\\scripts-2.6\\ooo_grep -&gt; c:\\Python26\\Scripts\r\ncopying build\\scripts-2.6\\ooo_mailmerge -&gt; c:\\Python26\\Scripts\r\nrunning install_data\r\ncreating c:\\Python26\\share\r\ncreating c:\\Python26\\share\\ooopy\r\ncopying test.sxw -&gt; c:\\Python26\\share\\ooopy\r\ncopying carta.stw -&gt; c:\\Python26\\share\\ooopy\r\ncopying test.odt -&gt; c:\\Python26\\share\\ooopy\r\ncopying carta.odt -&gt; c:\\Python26\\share\\ooopy\r\ncopying rechng.sxw -&gt; c:\\Python26\\share\\ooopy\r\ncopying rechng.odt -&gt; c:\\Python26\\share\\ooopy\r\ncopying run_doctest.py -&gt; c:\\Python26\\share\\ooopy\r\ncopying x.csv -&gt; c:\\Python26\\share\\ooopy\r\nrunning install_egg_info\r\nWriting c:\\Python26\\Lib\\site-packages\\OOoPy-1.6.7680-py2.6.egg-info<\/pre>\n<p>&nbsp;<\/p>\n<p>Para saber como funciona o m\u00f3dulo OOoPy, usei, pelo console do Scripter Scribus, os comandos:<\/p>\n<pre>from ooopy.OOoPy import OOoPy\r\nhelp (OOoPy)\r\nfrom ooopy.Transformer import Transformer\r\nhelp (Transformer)<\/pre>\n<p>No Ubuntu 10, tenho que inserir os <em>paths<\/em> antes de usar este c\u00f3digo, devido a um bug do pr\u00f3prio Ubuntu:<\/p>\n<pre>sys.path.insert(0,'\/usr\/lib\/python2.6\/')\r\nsys.path.insert(0,'')<\/pre>\n<h3>Help do OOoPy<\/h3>\n<p>Help on class OOoPy in module ooopy.OOoPy:<\/p>\n<p>class OOoPy(autosuper)<br \/>\n|\u00a0 Wrapper for OpenOffice.org zip files (all OOo documents are<br \/>\n|\u00a0 really zip files internally).<br \/>\n|<br \/>\n|\u00a0 from ooopy.OOoPy import OOoPy<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = &#8216;out.sxw&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; o.mimetype<br \/>\n|\u00a0 &#8216;application\/vnd.sun.xml.writer&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; for f in files :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 e = o.read (f)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 e.write ()<br \/>\n|\u00a0 &#8230;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;test.odt&#8217;, outfile = &#8216;out2.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; o.mimetype<br \/>\n|\u00a0 &#8216;application\/vnd.oasis.opendocument.text&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; for f in files :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 e = o.read (f)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 e.write ()<br \/>\n|\u00a0 &#8230;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;out2.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; for f in o.izip.infolist () :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print f.filename, f.create_system<br \/>\n|\u00a0 mimetype 0<br \/>\n|\u00a0 content.xml 0<br \/>\n|\u00a0 styles.xml 0<br \/>\n|\u00a0 meta.xml 0<br \/>\n|\u00a0 settings.xml 0<br \/>\n|\u00a0 META-INF\/manifest.xml 0<br \/>\n|\u00a0 Configurations2\/statusbar\/ 0<br \/>\n|\u00a0 Configurations2\/accelerator\/current.xml 0<br \/>\n|\u00a0 Configurations2\/floater\/ 0<br \/>\n|\u00a0 Configurations2\/popupmenu\/ 0<br \/>\n|\u00a0 Configurations2\/progressbar\/ 0<br \/>\n|\u00a0 Configurations2\/menubar\/ 0<br \/>\n|\u00a0 Configurations2\/toolbar\/ 0<br \/>\n|\u00a0 Configurations2\/images\/Bitmaps\/ 0<br \/>\n|\u00a0 Thumbnails\/thumbnail.png 0<br \/>\n|\u00a0 &gt;&gt;&gt; for f in o.izip.infolist () :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print f.filename, f.compress_type, f.compress_size, f.file_size<br \/>\n|\u00a0 mimetype 8 41 39<br \/>\n|\u00a0 content.xml 8 1930 16212<br \/>\n|\u00a0 styles.xml 8 1888 12743<br \/>\n|\u00a0 meta.xml 8 436 1545<br \/>\n|\u00a0 settings.xml 8 1376 7862<br \/>\n|\u00a0 META-INF\/manifest.xml 8 286 1845<br \/>\n|\u00a0 Configurations2\/statusbar\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/accelerator\/current.xml 8 2 0<br \/>\n|\u00a0 Configurations2\/floater\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/popupmenu\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/progressbar\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/menubar\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/toolbar\/ 0 0 0<br \/>\n|\u00a0 Configurations2\/images\/Bitmaps\/ 0 0 0<br \/>\n|\u00a0 Thumbnails\/thumbnail.png 8 2145 2367<br \/>\n|<br \/>\n|\u00a0 Method resolution order:<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 OOoPy<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 autosuper<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 __builtin__.object<br \/>\n|<br \/>\n|\u00a0 Methods defined here:<br \/>\n|<br \/>\n|\u00a0 __del__ = close(self)<br \/>\n|<br \/>\n|\u00a0 __init__(self, infile=None, outfile=None, write_mode=&#8217;w&#8217;, mimetype=None)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Open an OOo document, if no outfile is given, we open the<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 file read-only. Otherwise the outfile has to be different<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 from the infile &#8212; the python ZipFile can&#8217;t deal with<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 read-write access. In case an outfile is given, we open it<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 in &#8220;w&#8221; mode as a zip file, unless write_mode is specified<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 (the only allowed case would be &#8220;a&#8221; for appending to an<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 existing file, see pythons ZipFile documentation for<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 details). If no infile is given, the user is responsible for<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 providing all necessary files in the resulting output file.<br \/>\n|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 It seems that OOo needs to have the mimetype as the first<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 archive member (at least with mimetype as the first member<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 it works, the order may not be arbitrary) to recognize a zip<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 archive as an OOo file. When copying from a given infile, we<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 use the same order of elements in the resulting output. When<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 creating new elements we make sure the mimetype is the first<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 in the resulting archive.<br \/>\n|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Note that both, infile and outfile can either be filenames<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 or file-like objects (e.g. StringIO).<br \/>\n|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 The mimetype is automatically determined if an infile is<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 given. If only writing is desired, the mimetype should be<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 set.<br \/>\n|<br \/>\n|\u00a0 close(self)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Close the zip files. According to documentation of zipfile in<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 the standard python lib, this has to be done to be sure<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 everything is written. We copy over the not-yet written files<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 from izip before closing ozip.<br \/>\n|<br \/>\n|\u00a0 read(self, zname)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 return an OOoElementTree object for the given OOo document<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 archive member name. Currently an OOo document contains the<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 following XML files::<br \/>\n|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * content.xml: the text of the OOo document<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * styles.xml: style definitions<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * meta.xml: meta-information (author, last changed, &#8230;)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * settings.xml: settings in OOo<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 * META-INF\/manifest.xml: contents of the archive<br \/>\n|<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 There is an additional file &#8220;mimetype&#8221; that always contains<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 the string &#8220;application\/vnd.sun.xml.writer&#8221; for OOo 1.X files<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 and the string &#8220;application\/vnd.oasis.opendocument.text&#8221; for<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 OOo 2.X files.<br \/>\n|<br \/>\n|\u00a0 write(self, zname, etree)<br \/>\n|<br \/>\n|\u00a0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n|\u00a0 Data descriptors inherited from autosuper:<br \/>\n|<br \/>\n|\u00a0 __dict__<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 dictionary for instance variables (if defined)<br \/>\n|<br \/>\n|\u00a0 __weakref__<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 list of weak references to the object (if defined)<br \/>\n|<br \/>\n|\u00a0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n|\u00a0 Data and other attributes inherited from autosuper:<br \/>\n|<br \/>\n|\u00a0 __metaclass__ = &lt;class &#8216;ooopy.OOoPy._autosuper&#8217;&gt;<\/p>\n<h3>Help do Transformer<\/h3>\n<p>Help on class Transformer in module ooopy.Transformer:<\/p>\n<p>class Transformer(ooopy.OOoPy.autosuper)<br \/>\n|\u00a0 Class for applying a set of transforms to a given ooopy object.<br \/>\n|\u00a0 The transforms are applied to the specified file in priority<br \/>\n|\u00a0 order. When applying transforms we have a mechanism for<br \/>\n|\u00a0 communication of transforms. We give the transformer to the<br \/>\n|\u00a0 individual transforms as a parameter. The transforms may use the<br \/>\n|\u00a0 transformer like a dictionary for storing values and retrieving<br \/>\n|\u00a0 values left by previous transforms.<br \/>\n|\u00a0 As a naming convention each transform should use its class name<br \/>\n|\u00a0 as a prefix for storing values in the dictionary.<br \/>\n|\u00a0 &gt;&gt;&gt; import Transforms<br \/>\n|\u00a0 &gt;&gt;&gt; from Transforms import renumber_all, get_meta, set_meta, meta_counts<br \/>\n|\u00a0 &gt;&gt;&gt; from StringIO import StringIO<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m\u00a0\u00a0 = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; body [-1].get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, mimetype = m))<br \/>\n|\u00a0 &#8216;Standard&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; def cb (name) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 r = { &#8216;street&#8217;\u00a0\u00a0\u00a0\u00a0 : &#8216;Beispielstrasse 42&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;firstname&#8217;\u00a0 : &#8216;Hugo&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;salutation&#8217; : &#8216;Frau&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if r.has_key (name) : return r [name]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 return None<br \/>\n|\u00a0 &#8230;<br \/>\n|\u00a0 &gt;&gt;&gt; p = get_meta (m)<br \/>\n|\u00a0 &gt;&gt;&gt; t = Transformer (m, p)<br \/>\n|\u00a0 &gt;&gt;&gt; t [&#8216;a&#8217;] = &#8216;a&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; t [&#8216;a&#8217;]<br \/>\n|\u00a0 &#8216;a&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; p.set (&#8216;a&#8217;, &#8216;b&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; t [&#8216;Attribute_Access:a&#8217;]<br \/>\n|\u00a0 &#8216;b&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Autoupdate ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Editinfo\u00a0\u00a0 ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Field_Replace (prio = 99, replace = cb)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Field_Replace<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( replace =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { &#8216;salutation&#8217; : &#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;firstname&#8217;\u00a0 : &#8216;Erika&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;lastname&#8217;\u00a0\u00a0 : &#8216;Musterfrau&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;country&#8217;\u00a0\u00a0\u00a0 : &#8216;D&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;postalcode&#8217; : &#8216;00815&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , &#8216;city&#8217;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : &#8216;Niemandsdorf&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Addpagebreak\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;testout.sxw&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, node.text<br \/>\n|\u00a0 salutation : None<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Musterfrau<br \/>\n|\u00a0 street : Beispielstrasse 42<br \/>\n|\u00a0 country : D<br \/>\n|\u00a0 postalcode : 00815<br \/>\n|\u00a0 city : Niemandsdorf<br \/>\n|\u00a0 salutation : None<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Musterfrau<br \/>\n|\u00a0 street : Beispielstrasse 42<br \/>\n|\u00a0 country : D<br \/>\n|\u00a0 postalcode : 00815<br \/>\n|\u00a0 city : Niemandsdorf<br \/>\n|\u00a0 &gt;&gt;&gt; body [-1].get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, mimetype = m))<br \/>\n|\u00a0 &#8216;P2&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Mailmerge<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( iterator =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , dict (firstname = &#8216;Eric&#8217;,\u00a0 lastname = &#8216;Wizard&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , cb<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, t [&#8216;:&#8217;.join ((&#8216;Set_Attribute&#8217;, i))]<br \/>\n|\u00a0 character-count 951<br \/>\n|\u00a0 image-count 0<br \/>\n|\u00a0 object-count 0<br \/>\n|\u00a0 page-count 3<br \/>\n|\u00a0 paragraph-count 113<br \/>\n|\u00a0 table-count 3<br \/>\n|\u00a0 word-count 162<br \/>\n|\u00a0 &gt;&gt;&gt; name = t [&#8216;Addpagebreak_Style:stylename&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; name<br \/>\n|\u00a0 &#8216;P2&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;testout2.sxw&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, m))<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if zidx :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br \/>\n|\u00a0 draw:text-box 0<br \/>\n|\u00a0 draw:rect 1<br \/>\n|\u00a0 draw:text-box 3<br \/>\n|\u00a0 draw:rect 4<br \/>\n|\u00a0 draw:text-box 6<br \/>\n|\u00a0 draw:rect 7<br \/>\n|\u00a0 draw:text-box 2<br \/>\n|\u00a0 draw:text-box 5<br \/>\n|\u00a0 draw:text-box 8<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m)) == name :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print n.tag<br \/>\n|\u00a0 {http:\/\/openoffice.org\/2000\/text}p<br \/>\n|\u00a0 {http:\/\/openoffice.org\/2000\/text}p<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, m)<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m), None).endswith (&#8216;name&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, n.text<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Nobody<br \/>\n|\u00a0 firstname : Eric<br \/>\n|\u00a0 lastname : Wizard<br \/>\n|\u00a0 firstname : Hugo<br \/>\n|\u00a0 lastname : Testman<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Nobody<br \/>\n|\u00a0 firstname : Eric<br \/>\n|\u00a0 lastname : Wizard<br \/>\n|\u00a0 firstname : Hugo<br \/>\n|\u00a0 lastname : Testman<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;text-box&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;name&#8217;, m)),<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m))<br \/>\n|\u00a0 Frame1 1<br \/>\n|\u00a0 Frame2 2<br \/>\n|\u00a0 Frame3 3<br \/>\n|\u00a0 Frame4 None<br \/>\n|\u00a0 Frame5 None<br \/>\n|\u00a0 Frame6 None<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 Section1<br \/>\n|\u00a0 Section2<br \/>\n|\u00a0 Section3<br \/>\n|\u00a0 Section4<br \/>\n|\u00a0 Section5<br \/>\n|\u00a0 Section6<br \/>\n|\u00a0 Section7<br \/>\n|\u00a0 Section8<br \/>\n|\u00a0 Section9<br \/>\n|\u00a0 Section10<br \/>\n|\u00a0 Section11<br \/>\n|\u00a0 Section12<br \/>\n|\u00a0 Section13<br \/>\n|\u00a0 Section14<br \/>\n|\u00a0 Section15<br \/>\n|\u00a0 Section16<br \/>\n|\u00a0 Section17<br \/>\n|\u00a0 Section18<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;table&#8217;, &#8216;table&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;table&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 Table1<br \/>\n|\u00a0 Table2<br \/>\n|\u00a0 Table3<br \/>\n|\u00a0 &gt;&gt;&gt; r = o.read (&#8216;meta.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; meta = r.find (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;meta&#8217;, &#8216;document-statistic&#8217;, m))<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, repr (meta.get (OOo_Tag (&#8216;meta&#8217;, i, m)))<br \/>\n|\u00a0 character-count &#8216;951&#8217;<br \/>\n|\u00a0 image-count &#8216;0&#8217;<br \/>\n|\u00a0 object-count &#8216;0&#8217;<br \/>\n|\u00a0 page-count &#8216;3&#8217;<br \/>\n|\u00a0 paragraph-count &#8216;113&#8217;<br \/>\n|\u00a0 table-count &#8216;3&#8217;<br \/>\n|\u00a0 word-count &#8216;162&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Concatenate (&#8216;test.sxw&#8217;, &#8216;rechng.sxw&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, repr (t [&#8216;:&#8217;.join ((&#8216;Set_Attribute&#8217;, i))])<br \/>\n|\u00a0 character-count &#8216;1131&#8217;<br \/>\n|\u00a0 image-count &#8216;0&#8217;<br \/>\n|\u00a0 object-count &#8216;0&#8217;<br \/>\n|\u00a0 page-count &#8216;3&#8217;<br \/>\n|\u00a0 paragraph-count &#8216;168&#8217;<br \/>\n|\u00a0 table-count &#8216;2&#8217;<br \/>\n|\u00a0 word-count &#8216;160&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;testout3.sxw&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; s = o.read (&#8216;styles.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/*\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if name :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br \/>\n|\u00a0 &#8220;Tahoma1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Tahoma&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Courier New&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Arial Black&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Helvetica&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.E1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.E2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;fr1&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;fr3&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;Sect1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;gr1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P2&#8221;, &#8220;Standard&#8221;<br \/>\n|\u00a0 &#8220;Standard_Concat&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_P1&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;Concat_P2&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P3&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P4&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P5&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P6&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P7&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P8&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P9&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P10&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P11&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P12&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P13&#8221;, &#8220;Concat_Frame contents&#8221;<br \/>\n|\u00a0 &#8220;P15&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P16&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P17&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P18&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P19&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P20&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P21&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P22&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P23&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;T1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_fr1&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;Concat_fr2&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;Concat_fr3&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;fr4&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;fr5&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;fr6&#8221;, &#8220;Concat_Frame&#8221;<br \/>\n|\u00a0 &#8220;Concat_Sect1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;N0&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;N2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P15_Concat&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &gt;&gt;&gt; for n in s.findall (&#8216;.\/*\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if name :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br \/>\n|\u00a0 &#8220;Tahoma1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Tahoma&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Courier New&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Arial Black&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Helvetica&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Standard&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Text body&#8221;, &#8220;Standard&#8221;<br \/>\n|\u00a0 &#8220;List&#8221;, &#8220;Text body&#8221;<br \/>\n|\u00a0 &#8220;Table Contents&#8221;, &#8220;Text body&#8221;<br \/>\n|\u00a0 &#8220;Table Heading&#8221;, &#8220;Table Contents&#8221;<br \/>\n|\u00a0 &#8220;Caption&#8221;, &#8220;Standard&#8221;<br \/>\n|\u00a0 &#8220;Frame contents&#8221;, &#8220;Text body&#8221;<br \/>\n|\u00a0 &#8220;Index&#8221;, &#8220;Standard&#8221;<br \/>\n|\u00a0 &#8220;Frame&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;OLE&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_Standard&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_Text body&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;Concat_List&#8221;, &#8220;Concat_Text body&#8221;<br \/>\n|\u00a0 &#8220;Concat_Caption&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;Concat_Frame contents&#8221;, &#8220;Concat_Text body&#8221;<br \/>\n|\u00a0 &#8220;Concat_Index&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;Horizontal Line&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;Internet link&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Visited Internet Link&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_Frame&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_OLE&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;pm1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_pm1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Standard&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_Standard&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-decl&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name<br \/>\n|\u00a0 salutation<br \/>\n|\u00a0 firstname<br \/>\n|\u00a0 lastname<br \/>\n|\u00a0 street<br \/>\n|\u00a0 country<br \/>\n|\u00a0 postalcode<br \/>\n|\u00a0 city<br \/>\n|\u00a0 date<br \/>\n|\u00a0 invoice.invoice_no<br \/>\n|\u00a0 invoice.abo.aboprice.abotype.description<br \/>\n|\u00a0 address.salutation<br \/>\n|\u00a0 address.title<br \/>\n|\u00a0 address.firstname<br \/>\n|\u00a0 address.lastname<br \/>\n|\u00a0 address.function<br \/>\n|\u00a0 address.street<br \/>\n|\u00a0 address.country<br \/>\n|\u00a0 address.postalcode<br \/>\n|\u00a0 address.city<br \/>\n|\u00a0 invoice.subscriber.salutation<br \/>\n|\u00a0 invoice.subscriber.title<br \/>\n|\u00a0 invoice.subscriber.firstname<br \/>\n|\u00a0 invoice.subscriber.lastname<br \/>\n|\u00a0 invoice.subscriber.function<br \/>\n|\u00a0 invoice.subscriber.street<br \/>\n|\u00a0 invoice.subscriber.country<br \/>\n|\u00a0 invoice.subscriber.postalcode<br \/>\n|\u00a0 invoice.subscriber.city<br \/>\n|\u00a0 invoice.period_start<br \/>\n|\u00a0 invoice.period_end<br \/>\n|\u00a0 invoice.currency.name<br \/>\n|\u00a0 invoice.amount<br \/>\n|\u00a0 invoice.subscriber.initial<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;sequence-decl&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name<br \/>\n|\u00a0 Illustration<br \/>\n|\u00a0 Table<br \/>\n|\u00a0 Text<br \/>\n|\u00a0 Drawing<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if not name or name.startswith (&#8216;Concat&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8220;&gt;%s&lt;&#8221; % name<br \/>\n|\u00a0 &gt;Concat_P1&lt;<br \/>\n|\u00a0 &gt;Concat_P2&lt;<br \/>\n|\u00a0 &gt;Concat_Frame contents&lt;<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;text-box&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;Frame1&#8217;, &#8216;fr1&#8217;, &#8216;0&#8217;, &#8216;1&#8217;]<br \/>\n|\u00a0 [&#8216;Frame2&#8217;, &#8216;fr1&#8217;, &#8216;3&#8217;, &#8216;2&#8217;]<br \/>\n|\u00a0 [&#8216;Frame3&#8217;, &#8216;Concat_fr1&#8217;, &#8216;6&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame4&#8217;, &#8216;Concat_fr2&#8217;, &#8216;7&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame5&#8217;, &#8216;Concat_fr3&#8217;, &#8216;8&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame6&#8217;, &#8216;Concat_fr1&#8217;, &#8216;9&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame7&#8217;, &#8216;fr4&#8242;, &#8217;10&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame8&#8217;, &#8216;fr4&#8242;, &#8217;11&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame9&#8217;, &#8216;fr4&#8242;, &#8217;12&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame10&#8217;, &#8216;fr4&#8242;, &#8217;13&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame11&#8217;, &#8216;fr4&#8242;, &#8217;14&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame12&#8217;, &#8216;fr4&#8242;, &#8217;15&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame13&#8217;, &#8216;fr5&#8242;, &#8217;16&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame14&#8217;, &#8216;fr4&#8242;, &#8217;18&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame15&#8217;, &#8216;fr4&#8242;, &#8217;19&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame16&#8217;, &#8216;fr4&#8242;, &#8217;20&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame17&#8217;, &#8216;fr6&#8242;, &#8217;17&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame18&#8217;, &#8216;fr4&#8242;, &#8217;23&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame19&#8217;, &#8216;fr3&#8217;, &#8216;2&#8217;, None]<br \/>\n|\u00a0 [&#8216;Frame20&#8217;, &#8216;fr3&#8217;, &#8216;5&#8217;, None]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;style-name&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;text&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;Section1&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section2&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section3&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section4&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section5&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section6&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section7&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section8&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section9&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section10&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section11&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section12&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section13&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section14&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section15&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section16&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section17&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section18&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section19&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section20&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section21&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section22&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section23&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section24&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section25&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section26&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section27&#8217;, &#8216;Concat_Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section28&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section29&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section30&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section31&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section32&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section33&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;rect&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8217;, &#8216;1&#8217;, &#8216;1&#8217;]<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8217;, &#8216;4&#8217;, &#8216;2&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;line&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8242;, &#8217;24&#8217;]<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8242;, &#8217;22&#8217;]<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8242;, &#8217;21&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in s.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;style&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m)).startswith (&#8216;Co&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;class&#8217;, &#8216;family&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;style&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 props = n.find (&#8216;.\/&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;properties&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if props is not None and len (props) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 props [0].tag<br \/>\n|\u00a0 [&#8216;Concat_Standard&#8217;, &#8216;text&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 &#8216;{http:\/\/openoffice.org\/2000\/style}tab-stops&#8217;<br \/>\n|\u00a0 [&#8216;Concat_Text body&#8217;, &#8216;text&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_List&#8217;, &#8216;list&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Caption&#8217;, &#8216;extra&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Frame contents&#8217;, &#8216;extra&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Index&#8217;, &#8216;index&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Frame&#8217;, None, &#8216;graphics&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_OLE&#8217;, None, &#8216;graphics&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if zidx :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br \/>\n|\u00a0 draw:text-box 0<br \/>\n|\u00a0 draw:rect 1<br \/>\n|\u00a0 draw:text-box 3<br \/>\n|\u00a0 draw:rect 4<br \/>\n|\u00a0 draw:text-box 6<br \/>\n|\u00a0 draw:text-box 7<br \/>\n|\u00a0 draw:text-box 8<br \/>\n|\u00a0 draw:text-box 9<br \/>\n|\u00a0 draw:text-box 10<br \/>\n|\u00a0 draw:text-box 11<br \/>\n|\u00a0 draw:text-box 12<br \/>\n|\u00a0 draw:text-box 13<br \/>\n|\u00a0 draw:text-box 14<br \/>\n|\u00a0 draw:text-box 15<br \/>\n|\u00a0 draw:text-box 16<br \/>\n|\u00a0 draw:text-box 18<br \/>\n|\u00a0 draw:text-box 19<br \/>\n|\u00a0 draw:text-box 20<br \/>\n|\u00a0 draw:text-box 17<br \/>\n|\u00a0 draw:text-box 23<br \/>\n|\u00a0 draw:line 24<br \/>\n|\u00a0 draw:text-box 2<br \/>\n|\u00a0 draw:text-box 5<br \/>\n|\u00a0 draw:line 22<br \/>\n|\u00a0 draw:line 21<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;carta.stw&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; t = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Mailmerge<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 ( iterator =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( dict<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( Spett = &#8220;Spettabile&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , contraente = &#8220;First person&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , indirizzo = &#8220;street? 1&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , tipo = &#8220;racc. A.C.&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , luogo = &#8220;Varese&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , oggetto = &#8220;Saluti&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , dict<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( Spett = &#8220;Egregio&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , contraente = &#8220;Second Person&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , indirizzo = &#8220;street? 2&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , tipo = &#8220;Raccomandata&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , luogo = &#8220;Gavirate&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , oggetto = &#8220;Ossequi&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform(o)<br \/>\n|\u00a0 &gt;&gt;&gt; o.close()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;carta-out.stw&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, node.text<br \/>\n|\u00a0 Spett : Spettabile<br \/>\n|\u00a0 contraente : First person<br \/>\n|\u00a0 indirizzo : street? 1<br \/>\n|\u00a0 Spett : Egregio<br \/>\n|\u00a0 contraente : Second Person<br \/>\n|\u00a0 indirizzo : street? 2<br \/>\n|\u00a0 tipo : racc. A.C.<br \/>\n|\u00a0 luogo : Varese<br \/>\n|\u00a0 oggetto : Saluti<br \/>\n|\u00a0 tipo : Raccomandata<br \/>\n|\u00a0 luogo : Gavirate<br \/>\n|\u00a0 oggetto : Ossequi<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;test.odt&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Mailmerge<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( iterator =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , dict (firstname = &#8216;Eric&#8217;,\u00a0 lastname = &#8216;Wizard&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , cb<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, t [&#8216;:&#8217;.join ((&#8216;Set_Attribute&#8217;, i))]<br \/>\n|\u00a0 character-count 951<br \/>\n|\u00a0 image-count 0<br \/>\n|\u00a0 object-count 0<br \/>\n|\u00a0 page-count 3<br \/>\n|\u00a0 paragraph-count 53<br \/>\n|\u00a0 table-count 3<br \/>\n|\u00a0 word-count 162<br \/>\n|\u00a0 &gt;&gt;&gt; name = t [&#8216;Addpagebreak_Style:stylename&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; name<br \/>\n|\u00a0 &#8216;P2&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;testout.odt&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, m))<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if zidx :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br \/>\n|\u00a0 draw:frame 0<br \/>\n|\u00a0 draw:rect 1<br \/>\n|\u00a0 draw:frame 3<br \/>\n|\u00a0 draw:rect 4<br \/>\n|\u00a0 draw:frame 6<br \/>\n|\u00a0 draw:rect 7<br \/>\n|\u00a0 draw:frame 2<br \/>\n|\u00a0 draw:frame 5<br \/>\n|\u00a0 draw:frame 8<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m)) == name :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print n.tag<br \/>\n|\u00a0 {urn:oasis:names:tc:opendocument:xmlns:text:1.0}p<br \/>\n|\u00a0 {urn:oasis:names:tc:opendocument:xmlns:text:1.0}p<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, m)<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m), None).endswith (&#8216;name&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, n.text<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Nobody<br \/>\n|\u00a0 firstname : Eric<br \/>\n|\u00a0 lastname : Wizard<br \/>\n|\u00a0 firstname : Hugo<br \/>\n|\u00a0 lastname : Testman<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Nobody<br \/>\n|\u00a0 firstname : Eric<br \/>\n|\u00a0 lastname : Wizard<br \/>\n|\u00a0 firstname : Hugo<br \/>\n|\u00a0 lastname : Testman<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;frame&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;name&#8217;, m)),<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m))<br \/>\n|\u00a0 Frame1 1<br \/>\n|\u00a0 Frame2 2<br \/>\n|\u00a0 Frame3 3<br \/>\n|\u00a0 Frame4 None<br \/>\n|\u00a0 Frame5 None<br \/>\n|\u00a0 Frame6 None<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 Section1<br \/>\n|\u00a0 Section2<br \/>\n|\u00a0 Section3<br \/>\n|\u00a0 Section4<br \/>\n|\u00a0 Section5<br \/>\n|\u00a0 Section6<br \/>\n|\u00a0 Section7<br \/>\n|\u00a0 Section8<br \/>\n|\u00a0 Section9<br \/>\n|\u00a0 Section10<br \/>\n|\u00a0 Section11<br \/>\n|\u00a0 Section12<br \/>\n|\u00a0 Section13<br \/>\n|\u00a0 Section14<br \/>\n|\u00a0 Section15<br \/>\n|\u00a0 Section16<br \/>\n|\u00a0 Section17<br \/>\n|\u00a0 Section18<br \/>\n|\u00a0 &gt;&gt;&gt; for n in body.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;table&#8217;, &#8216;table&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print n.get (OOo_Tag (&#8216;table&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 Table1<br \/>\n|\u00a0 Table2<br \/>\n|\u00a0 Table3<br \/>\n|\u00a0 &gt;&gt;&gt; r = o.read (&#8216;meta.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; meta = r.find (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;meta&#8217;, &#8216;document-statistic&#8217;, m))<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, repr (meta.get (OOo_Tag (&#8216;meta&#8217;, i, m)))<br \/>\n|\u00a0 character-count &#8216;951&#8217;<br \/>\n|\u00a0 image-count &#8216;0&#8217;<br \/>\n|\u00a0 object-count &#8216;0&#8217;<br \/>\n|\u00a0 page-count &#8216;3&#8217;<br \/>\n|\u00a0 paragraph-count &#8217;53&#8217;<br \/>\n|\u00a0 table-count &#8216;3&#8217;<br \/>\n|\u00a0 word-count &#8216;162&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;carta.odt&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; t = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Mailmerge<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 ( iterator =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( dict<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( Spett = &#8220;Spettabile&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , contraente = &#8220;First person&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , indirizzo = &#8220;street? 1&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , tipo = &#8220;racc. A.C.&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , luogo = &#8220;Varese&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , oggetto = &#8220;Saluti&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , dict<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( Spett = &#8220;Egregio&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , contraente = &#8220;Second Person&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , indirizzo = &#8220;street? 2&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , tipo = &#8220;Raccomandata&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , luogo = &#8220;Gavirate&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , oggetto = &#8220;Ossequi&#8221;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform(o)<br \/>\n|\u00a0 &gt;&gt;&gt; o.close()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;carta-out.odt&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, node.text<br \/>\n|\u00a0 Spett : Spettabile<br \/>\n|\u00a0 contraente : First person<br \/>\n|\u00a0 indirizzo : street? 1<br \/>\n|\u00a0 Spett : Egregio<br \/>\n|\u00a0 contraente : Second Person<br \/>\n|\u00a0 indirizzo : street? 2<br \/>\n|\u00a0 tipo : racc. A.C.<br \/>\n|\u00a0 luogo : Varese<br \/>\n|\u00a0 oggetto : Saluti<br \/>\n|\u00a0 tipo : Raccomandata<br \/>\n|\u00a0 luogo : Gavirate<br \/>\n|\u00a0 oggetto : Ossequi<br \/>\n|\u00a0 &gt;&gt;&gt; sio = StringIO ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;test.odt&#8217;, outfile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Concatenate (&#8216;test.odt&#8217;, &#8216;rechng.odt&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; for i in meta_counts :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print i, repr (t [&#8216;:&#8217;.join ((&#8216;Set_Attribute&#8217;, i))])<br \/>\n|\u00a0 character-count &#8216;1131&#8217;<br \/>\n|\u00a0 image-count &#8216;0&#8217;<br \/>\n|\u00a0 object-count &#8216;0&#8217;<br \/>\n|\u00a0 page-count &#8216;3&#8217;<br \/>\n|\u00a0 paragraph-count &#8217;80&#8217;<br \/>\n|\u00a0 table-count &#8216;2&#8217;<br \/>\n|\u00a0 word-count &#8216;159&#8217;<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; ov\u00a0 = sio.getvalue ()<br \/>\n|\u00a0 &gt;&gt;&gt; f\u00a0\u00a0 = open (&#8220;testout3.odt&#8221;, &#8220;wb&#8221;)<br \/>\n|\u00a0 &gt;&gt;&gt; f.write (ov)<br \/>\n|\u00a0 &gt;&gt;&gt; f.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = sio)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; s = o.read (&#8216;styles.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/*\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if name :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br \/>\n|\u00a0 &#8220;Tahoma1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Tahoma&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Courier New&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Arial Black&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Times New Roman&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Arial&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Helvetica&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.E1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.A2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Table1.E2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;fr1&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr2&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;Sect1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;gr1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P2&#8221;, &#8220;Standard&#8221;<br \/>\n|\u00a0 &#8220;Standard_Concat&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;Concat_P1&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;Concat_P2&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P3&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P4&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P5&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P6&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P7&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P8&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P9&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P10&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P11&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P12&#8221;, &#8220;Concat_Frame_20_contents&#8221;<br \/>\n|\u00a0 &#8220;P14&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P15&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P16&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P17&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P18&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P19&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P20&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P21&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P22&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;P23&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &#8220;Concat_fr1&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;Concat_fr2&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr3&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr4&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr5&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;fr6&#8221;, &#8220;Frame&#8221;<br \/>\n|\u00a0 &#8220;Concat_gr1&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;N0&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;N2&#8221;, &#8220;None&#8221;<br \/>\n|\u00a0 &#8220;P14_Concat&#8221;, &#8220;Concat_Standard&#8221;<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-decl&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name<br \/>\n|\u00a0 salutation<br \/>\n|\u00a0 firstname<br \/>\n|\u00a0 lastname<br \/>\n|\u00a0 street<br \/>\n|\u00a0 country<br \/>\n|\u00a0 postalcode<br \/>\n|\u00a0 city<br \/>\n|\u00a0 date<br \/>\n|\u00a0 invoice.invoice_no<br \/>\n|\u00a0 invoice.abo.aboprice.abotype.description<br \/>\n|\u00a0 address.salutation<br \/>\n|\u00a0 address.title<br \/>\n|\u00a0 address.firstname<br \/>\n|\u00a0 address.lastname<br \/>\n|\u00a0 address.function<br \/>\n|\u00a0 address.street<br \/>\n|\u00a0 address.country<br \/>\n|\u00a0 address.postalcode<br \/>\n|\u00a0 address.city<br \/>\n|\u00a0 invoice.subscriber.salutation<br \/>\n|\u00a0 invoice.subscriber.title<br \/>\n|\u00a0 invoice.subscriber.firstname<br \/>\n|\u00a0 invoice.subscriber.lastname<br \/>\n|\u00a0 invoice.subscriber.function<br \/>\n|\u00a0 invoice.subscriber.street<br \/>\n|\u00a0 invoice.subscriber.country<br \/>\n|\u00a0 invoice.subscriber.postalcode<br \/>\n|\u00a0 invoice.subscriber.city<br \/>\n|\u00a0 invoice.period_start<br \/>\n|\u00a0 invoice.period_end<br \/>\n|\u00a0 invoice.currency.name<br \/>\n|\u00a0 invoice.amount<br \/>\n|\u00a0 invoice.subscriber.initial<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;sequence-decl&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name<br \/>\n|\u00a0 Illustration<br \/>\n|\u00a0 Table<br \/>\n|\u00a0 Text<br \/>\n|\u00a0 Drawing<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if not name or name.startswith (&#8216;Concat&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;:&#8217;.join(split_tag (n.tag)), &#8220;&gt;%s&lt;&#8221; % name<br \/>\n|\u00a0 text:p &gt;None&lt;<br \/>\n|\u00a0 text:p &gt;None&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P1&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P1&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_P2&lt;<br \/>\n|\u00a0 text:p &gt;Concat_Frame_20_contents&lt;<br \/>\n|\u00a0 text:p &gt;None&lt;<br \/>\n|\u00a0 text:p &gt;None&lt;<br \/>\n|\u00a0 text:p &gt;None&lt;<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;frame&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;Frame1&#8217;, &#8216;fr1&#8217;, &#8216;0&#8217;, &#8216;1&#8217;]<br \/>\n|\u00a0 [&#8216;Frame2&#8217;, &#8216;fr1&#8217;, &#8216;3&#8217;, &#8216;2&#8217;]<br \/>\n|\u00a0 [&#8216;Frame3&#8217;, &#8216;Concat_fr1&#8217;, &#8216;6&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame4&#8217;, &#8216;Concat_fr2&#8217;, &#8216;7&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame5&#8217;, &#8216;fr3&#8217;, &#8216;8&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame6&#8217;, &#8216;Concat_fr1&#8217;, &#8216;9&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame7&#8217;, &#8216;fr4&#8242;, &#8217;10&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame8&#8217;, &#8216;fr4&#8242;, &#8217;11&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame9&#8217;, &#8216;fr4&#8242;, &#8217;12&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame10&#8217;, &#8216;fr4&#8242;, &#8217;13&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame11&#8217;, &#8216;fr4&#8242;, &#8217;14&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame12&#8217;, &#8216;fr4&#8242;, &#8217;15&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame13&#8217;, &#8216;fr5&#8242;, &#8217;16&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame14&#8217;, &#8216;fr4&#8242;, &#8217;18&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame15&#8217;, &#8216;fr4&#8242;, &#8217;19&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame16&#8217;, &#8216;fr4&#8242;, &#8217;20&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame17&#8217;, &#8216;fr6&#8242;, &#8217;17&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame18&#8217;, &#8216;fr4&#8242;, &#8217;23&#8217;, &#8216;3&#8217;]<br \/>\n|\u00a0 [&#8216;Frame19&#8217;, &#8216;fr2&#8217;, &#8216;2&#8217;, None]<br \/>\n|\u00a0 [&#8216;Frame20&#8217;, &#8216;fr2&#8217;, &#8216;5&#8217;, None]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;style-name&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;text&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;Section1&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section2&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section3&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section4&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section5&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section6&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section7&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section8&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section9&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section10&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section11&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section12&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section13&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section14&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section15&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section16&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section17&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section18&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section19&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section20&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section21&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section22&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section23&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section24&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section25&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section26&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section27&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section28&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section29&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section30&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section31&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section32&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 [&#8216;Section33&#8217;, &#8216;Sect1&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;rect&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8217;, &#8216;1&#8217;, &#8216;1&#8217;]<br \/>\n|\u00a0 [&#8216;gr1&#8217;, &#8216;P1&#8217;, &#8216;4&#8217;, &#8216;2&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;line&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;draw&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 [&#8216;Concat_gr1&#8217;, &#8216;P1&#8242;, &#8217;24&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_gr1&#8217;, &#8216;P1&#8242;, &#8217;22&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_gr1&#8217;, &#8216;P1&#8242;, &#8217;21&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in s.findall (&#8216;.\/\/&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;style&#8217;, m)) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m)).startswith (&#8216;Co&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 attrs = &#8216;name&#8217;, &#8216;display-name&#8217;, &#8216;class&#8217;, &#8216;family&#8217;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 attrs = [n.get (OOo_Tag (&#8216;style&#8217;, i, m)) for i in attrs]<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print attrs<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 props = n.find (&#8216;.\/&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;properties&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if props is not None and len (props) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 props [0].tag<br \/>\n|\u00a0 [&#8216;Concat_Standard&#8217;, None, &#8216;text&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Text_20_body&#8217;, &#8216;Concat Text body&#8217;, &#8216;text&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_List&#8217;, None, &#8216;list&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Caption&#8217;, None, &#8216;extra&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Frame_20_contents&#8217;, &#8216;Concat Frame contents&#8217;, &#8216;extra&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 [&#8216;Concat_Index&#8217;, None, &#8216;index&#8217;, &#8216;paragraph&#8217;]<br \/>\n|\u00a0 &gt;&gt;&gt; for n in c.findall (&#8216;.\/\/*&#8217;) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 if zidx :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br \/>\n|\u00a0 draw:frame 0<br \/>\n|\u00a0 draw:rect 1<br \/>\n|\u00a0 draw:frame 3<br \/>\n|\u00a0 draw:rect 4<br \/>\n|\u00a0 draw:frame 6<br \/>\n|\u00a0 draw:frame 7<br \/>\n|\u00a0 draw:frame 8<br \/>\n|\u00a0 draw:frame 9<br \/>\n|\u00a0 draw:frame 10<br \/>\n|\u00a0 draw:frame 11<br \/>\n|\u00a0 draw:frame 12<br \/>\n|\u00a0 draw:frame 13<br \/>\n|\u00a0 draw:frame 14<br \/>\n|\u00a0 draw:frame 15<br \/>\n|\u00a0 draw:frame 16<br \/>\n|\u00a0 draw:frame 18<br \/>\n|\u00a0 draw:frame 19<br \/>\n|\u00a0 draw:frame 20<br \/>\n|\u00a0 draw:frame 17<br \/>\n|\u00a0 draw:frame 23<br \/>\n|\u00a0 draw:line 24<br \/>\n|\u00a0 draw:frame 2<br \/>\n|\u00a0 draw:frame 5<br \/>\n|\u00a0 draw:line 22<br \/>\n|\u00a0 draw:line 21<br \/>\n|\u00a0 &gt;&gt;&gt; from os import system<br \/>\n|\u00a0 &gt;&gt;&gt; system (&#8216;python .\/ooo_fieldreplace -i test.odt -o testout.odt &#8216;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;salutation=Frau firstname=Erika lastname=Musterfrau &#8216;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;country=D postalcode=00815 city=Niemandsdorf &#8216;<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;street=&#8221;Beispielstrasse 42&#8243;&#8216;)<br \/>\n|\u00a0 0<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;testout.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, node.text<br \/>\n|\u00a0 salutation : Frau<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Musterfrau<br \/>\n|\u00a0 street : Beispielstrasse 42<br \/>\n|\u00a0 country : D<br \/>\n|\u00a0 postalcode : 00815<br \/>\n|\u00a0 city : Niemandsdorf<br \/>\n|\u00a0 salutation : Frau<br \/>\n|\u00a0 firstname : Erika<br \/>\n|\u00a0 lastname : Musterfrau<br \/>\n|\u00a0 street : Beispielstrasse 42<br \/>\n|\u00a0 country : D<br \/>\n|\u00a0 postalcode : 00815<br \/>\n|\u00a0 city : Niemandsdorf<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; system (&#8220;.\/ooo_mailmerge -o testout.odt -d, carta.odt x.csv&#8221;)<br \/>\n|\u00a0 0<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;testout.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; vset = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (vset) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print name, &#8216;:&#8217;, node.text<br \/>\n|\u00a0 Spett : Spettabile<br \/>\n|\u00a0 contraente : First person<br \/>\n|\u00a0 indirizzo : street? 1<br \/>\n|\u00a0 Spett : Egregio<br \/>\n|\u00a0 contraente : Second Person<br \/>\n|\u00a0 indirizzo : street? 2<br \/>\n|\u00a0 tipo : racc. A.C.<br \/>\n|\u00a0 luogo : Varese<br \/>\n|\u00a0 oggetto : Saluti<br \/>\n|\u00a0 tipo : Raccomandata<br \/>\n|\u00a0 luogo : Gavirate<br \/>\n|\u00a0 oggetto : Ossequi<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o\u00a0\u00a0 = OOoPy (infile = &#8216;testenum.odt&#8217;, outfile = &#8216;xyzzy.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; t\u00a0\u00a0 = Transformer (<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o.mimetype<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , get_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Addpagebreak_Style ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Mailmerge<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( iterator =<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , dict (firstname = &#8216;Eric&#8217;,\u00a0 lastname = &#8216;Wizard&#8217;)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 , cb<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , renumber_all (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , set_meta (o.mimetype)<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 , Transforms.Fix_OOo_Tag ()<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 )<br \/>\n|\u00a0 &gt;&gt;&gt; t.transform (o)<br \/>\n|\u00a0 &gt;&gt;&gt; o.close ()<br \/>\n|\u00a0 &gt;&gt;&gt; o = OOoPy (infile = &#8216;xyzzy.odt&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; m = o.mimetype<br \/>\n|\u00a0 &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br \/>\n|\u00a0 &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br \/>\n|\u00a0 &gt;&gt;&gt; textlist = &#8216;.\/\/&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;list&#8217;, m)<br \/>\n|\u00a0 &gt;&gt;&gt; for node in body.findall (textlist) :<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 id = node.get (OOo_Tag (&#8216;xml&#8217;, &#8216;id&#8217;, m))<br \/>\n|\u00a0 &#8230;\u00a0\u00a0\u00a0\u00a0 print &#8216;xml:id&#8217;, &#8216;:&#8217;, id<br \/>\n|\u00a0 xml:id : list1<br \/>\n|\u00a0 xml:id : list2<br \/>\n|\u00a0 xml:id : list3<br \/>\n|<br \/>\n|\u00a0 Method resolution order:<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Transformer<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 ooopy.OOoPy.autosuper<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 __builtin__.object<br \/>\n|<br \/>\n|\u00a0 Methods defined here:<br \/>\n|<br \/>\n|\u00a0 __getitem__(self, key)<br \/>\n|<br \/>\n|\u00a0 __init__(self, mimetype, *tf)<br \/>\n|<br \/>\n|\u00a0 __setitem__(self, key, value)<br \/>\n|<br \/>\n|\u00a0 insert(self, transform)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Insert a new transform<br \/>\n|<br \/>\n|\u00a0 transform(self, ooopy)<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Apply all the transforms in priority order.<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 Priority order is global over all transforms.<br \/>\n|<br \/>\n|\u00a0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n|\u00a0 Data descriptors inherited from ooopy.OOoPy.autosuper:<br \/>\n|<br \/>\n|\u00a0 __dict__<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 dictionary for instance variables (if defined)<br \/>\n|<br \/>\n|\u00a0 __weakref__<br \/>\n|\u00a0\u00a0\u00a0\u00a0\u00a0 list of weak references to the object (if defined)<br \/>\n|<br \/>\n|\u00a0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n|\u00a0 Data and other attributes inherited from ooopy.OOoPy.autosuper:<br \/>\n|<br \/>\n|\u00a0 __metaclass__ = &lt;class &#8216;ooopy.OOoPy._autosuper&#8217;&gt;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Scribus importa documentos de texto do BrOffice \/ LibreOffice \/ OpenOffice.org, mas apenas manualmente, pelo menu &#8220;Arquivo &gt; Abrir&#8221;. Se quiser importar por\u00a0script, em alguma tarefa automatizada, tenho que [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2007","post","type-post","status-publish","format-standard","hentry","category-geral"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/2007","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=2007"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/2007\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=2007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=2007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=2007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}