Cambiar a contenido. | Saltar a navegación

Screen styles
Usted está aquí: Inicio Documentación Tutorial Controlar OpenOffice.org desde Python Modificando el contenido

Modificando el contenido

— archivado en: ,

Usamos el API y empezamos a llamar a funciones internas de la aplicación para modificar contenido, dar formato e ingresar datos.

Dependiendo del tipo de archivo que estemos trabajando en OpenOffice.org (hoja de calculo, presentaciones o documentos), es como podremos interactuar con la aplicacion. En este How-To solo trataremos con documentos de texto. Asi que para el primer ejemplo insertaremos una linea con el metodo InsertString(), un salto de linea con el caracter \n al finalizar mas una identacion de la misma con el caracter \t.

>> document.Text.insertString(cursor, "This text is being added to openoffice using python and uno package.", 0)
>> document.Text.insertString(cursor, "\n\nThis is a new paragraph.", 0)
>> document.Text.insertString(cursor, "\n\n\tAnd this is another new paragraph.", 0)

Como podemos ver el metodo InsertString() depende de la variable documento y texto, esto son los servicios que previamente habiamos insertado al principio de este documento.

Dando formato al contenido

Modificaremos el color del texto para lo cual necesitaremos enfocarnos en las propiedades de los metodos, primero necesitamos capturar las propiedades del cursor, por ejemplo para el tamaño del cursor usaríamos CharHeight. Para los otras propiedades mostraremos color, tipografia y tamaño.

>> cursor.setPropertyValue("CharHeight", 20)
>> cursor.setPropertyValue("CharFontName", "Arial")
>> cursor.setPropertyValue("CharWeight", 150)

Creando una Tabla

 Ahora intentaremos algo mas complejo, estaremos ingresando una tabla en el documento, para esto necesitaremos invocar nuevos servicios como TextTable, InsertTextContext, setString.

>> mytable = document.createInstance("com.sun.star.text.TextTable")
>> mytable.initialize(6,2)
>> document.Text.insertTextContent(cursor, mytable, 0)
>> mytable.getCellByName("A1").setString("This is first column")
>> mytable.getCellByName("B1").setString("This is second column")

con este script podemos ver como se ingresa contenido linea por linea dentro de la tabla. Ahora intentaremos manejar alguna funcion de nuestra herramienta como es el buscar y reemplazar.

Modificando el contenido: Buscar y reemplazar

Esta funcion nos permetira operarla desde el codigo de forma similar como un usuario en el escritorio. Usamos servicios diferentes como es el createSearDecriptor(), metodos como SearchString y findFirst.

>> import string
>> #Crear un decriptro de busqueda
>> search = document.createSearchDescriptor()
>> #Que buscar
>> search.SearchString = u"Lucas"
>> #Cadena encontrada
>> found = document.findFirst( search )
>> 
>> while found:
>> found.String = string.replace( found.String, u"Lucas", u"NewLucas" )
>> found = document.findNext( found.End, search)
>> #Save
>> document.store()

 

Acciones de Documento