Ikasten.IO
Learning, Aprendiendo

Macros, CustomShapes y OOo 2.2 8 Diciembre, 2007

Tengo un problema a la hora de importar algunas presentaciones de PowerPoint en Impress. Muchos de los textos acaban con un tamaño 4 o 6 puntos superior al original. A veces se puede arreglar simplemente cambiando el estilo, pero otras veces, los textos tienen distintos estilos y no es posible. Este fin de semana he estado peleándome con una macro en Impress que me permita rebajar en 2 pixels cada texto de una diapositiva Impress. Estará integrada con la barra de herramientas, para que sea fácilmente accesible. Tras varias horas de debugger, no he conseguido acceder al texto de algunos cuadros (los que el usuario puede crear a su gusto y que OOo denomina CustomShapes). He estado rebuscando en OOoForums.org una forma de resolver ese problema que parecía trivial y no he encontrado nada. Finalmente, en la lista api.openoffice.org he encontrado la causa de mi problema: UN BUG en el API de la versión 2.2 de OOo. En concreto, está documentado en el bugzilla, y se supone corregido en la versión 2.3:

Contrary to ordinary shapes, the API does not give access to the text of a
CustomShape. You cannot use .getText() or .getString() because interfaces com.sun.star.XText and
com.sun.star.XTextRange are missing.
….how to verify..
create new impress document with one slide and add only a single customshape to
it. add text to that custom shape.
….
create the following basic macro for the document and execute it
….
Sub Main
xDoc = thiscomponent
xPage = xDoc.getDrawPages.getByIndex(0)
xObj = xPage.getByIndex(0)
print xObj.getString()
End

Categorias Devel diariolinux OOo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *