[RESUELTO] Color de fondo de cada diapositiva en impress

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
arivas_2005
Mensajes: 162
Registrado: Mié Nov 16, 2011 6:01 pm

[RESUELTO] Color de fondo de cada diapositiva en impress

Mensaje por arivas_2005 »

Saludos.
Cömo se puede obtener el color de fondo de cada diapositiva en la presentacion (el aplicado por medio de [Formato-página-fondo-color] )
Estoy usando la prueba y error, con estas lineas, pero no logro leer cada color.

Código: Seleccionar todo

sub colorfondoslide

  Dim oDrawPages as Object, oDrawPage as Object
  oDrawPages = Thiscomponent.getDrawPages()     
  
  totalslides=Thiscomponent.getDrawPages().count
   
  for a=0 to totalslides-1
  Dim Fondo as Object
     oDrawPage = oDrawPages.getByIndex(a)
     Fondo = Thiscomponent.createInstance("com.sun.star.drawing.Background")
 	
 	' ESTA SECCION SI APLICA COLOR DE FONDO EN CADA DIAPOSITIVA
 	Fondo.FillColor  = RGB(250,110,0)  
  	oDrawPage.Background = Fondo
  	
   'pero siguiendo la lógica de las expresiones,  al intentar extraer los valores de colores con msgbox
   'solo me aparece el mismo numero aunque las diaspositivas 
    'tengan distinto color de fondo 
    msgbox Fondo.Fillcolor   ' 
    msgbox oDrawPage.Background  ' esta me da error
  next
  
end sub      
Mi interés por hoy, no es colorear cada diapositiva, sino establecer si tienen color de fondo y si tienen, cual es el valor correspondiente del color.

Gracias
Última edición por mauricio el Mié Feb 17, 2016 2:42 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
Libreoffice 4.7
Puppy slacko 6 y windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Color de fondo de cada diapositiva en impress

Mensaje por mauricio »

Hola...

Si vas a usar prueba y error, te recomiendo mucho aprender a usar MRI, será mucho más productiva tu búsqueda...

Prueba con:

Código: Seleccionar todo

	doc = ThisComponent
	pages = doc.getDrawPages()

	For i = 0 To pages.GetCount() - 1
		page = pages.getByIndex(i)
		info = page.Background
		If info Then
			MsgBox info.FillColor
		End If
	Next i
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
arivas_2005
Mensajes: 162
Registrado: Mié Nov 16, 2011 6:01 pm

Re: Color de fondo de cada diapositiva en impress

Mensaje por arivas_2005 »

Hola Mauricio
Gracias por su apoyo.

Ya ejecuté el código que me proporcionó y me da un error asi

If info Then <--- Valor de propiedad incorrecto

Estoy usando Libreoffice Versión: 5.0.3.2 en puppy slacko 6

Exitos!.
Libreoffice 4.7
Puppy slacko 6 y windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Color de fondo de cada diapositiva en impress

Mensaje por mauricio »

Tu firma dice OpenOffice 3.2, ojala puedas actualizarla...

Prueba con:

Código: Seleccionar todo

       doc = ThisComponent
       pages = doc.getDrawPages()

       For i = 0 To pages.GetCount() - 1
          page = pages.getByIndex(i)
          info = page.Background
          If VarType(info) Then
	          MsgBox info.FillColor
	      End If
       Next i
Lo he probado con LibreOffice 4.4.7 en ArchLinux y LibO 5.03 en Linux Mint de forma correcta...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder