page2
Macros com Python
Por Júlio César Eiras Melanda
Cada um destes arquivos e pastas é indispensável para um arquivo de texto do BrOffice, e sua falta no arquivo resultará num arquivo corrompido.
Mas, porque estamos vendo isto?
Porque precisamos alterar elementos da estrutura do arquivo para incorporar a macro em Python.
Vamos começar criando os diretórios necessários que o arquivo ainda não possui. Na raiz do arquivo, onde se encontra o diretório META-INF, crie um diretório vazio chamado Scripts. Tenha muita atenção à capitalização das letras dos nomes dos diretórios.
Dentro do diretório Scripts, crie outro chamado python. Finalmente, dentro deste novo diretório, crie um arquivo de texto em branco chamado minhamacro.py. Este arquivo pode ser criado com o seu editor de textos preferido.
Obs.: As suítes de escritório geralmente possuem processadores de texto e não editores de texto, então BrOffice Writer, MS Word, e tantos outros não devem ser usados para criar o arquivo minhamacro.py. Este arquivo será o módulo Python que conterá nossa macro.

Abra agora o arquivo minhamacro.py e coloque o seguinte conteúdo, respeitando rigorosamente os recuos iniciais de cada linha (identação).
As linhas que iniciam com # são comentários, com exceção da primeira que avisa o interpretador Python qual é a codificação de caracteres que será usada.
Para efeito de simplificação do exemplo, esta macro simplesmente pega nosso arquivo em branco e acrescenta o texto “Olá esta é minha primeira macro com python!”.
Você pode observar que nela ajustamos o tamanho das letras para 16 e o tipo de letra para Itálico antes de inserirmos o texto.
Salve e feche o arquivo.
Agora, a estrutura do seu arquivo já está pronta, porém, se recriarmos o arquivo odt compactando o conteúdo destes diretórios, o BrOffice não saberá o que fazer com o novo diretório e considerará o arquivo como corrompido. Assim, precisamos modificar o arquivo manifest.xml, para avisar ao programa que os novos diretórios e arquivos fazem parte do arquivo, e não devem ser considerados um erro.
# -*- coding:utf8 -*-
#importa a biblioteca UNO do BrOffice
import uno
def HelloWorld():
#cria um objeto documento a partir do contexto do documento local
documento = XSCRIPTCONTEXT.getDocument()
texto = documento.getText()
dadosTexto = texto.getEnd()
dadosTexto.CharHeight = 16.0
dadosTexto.CharPosture = uno.getConstantByName(
"com.sun.star.awt.FontSlant.ITALIC")
dadosTexto.setString('Olá esta é minha primeira macro com python!')
return None