[RESUELTO]Macro Cabecera

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO]Macro Cabecera

Notapor Visente » Jue Jul 21, 2011 12:12 pm

Hola! Buenas soy nuevo en esto del OOo Basic y la verdad es que estoy algo perdido, a ver si alguien me puede ayudar, estoy intentando hacer una macro para personalizar la cabecera , lo que quiero es que cuando le des a la macro te aparezcan unas listas y lo que selecciones (que seran textos e imagenes) se inserte en la cabecera.

Mis preguntas son :

1ª ¿Como personalizo solo la letra(el estilo) del la cabecera sin afectar a la letra del resto del documento.?

2ª ¿Como se inserta una imagen en la cabecera?


Muchas Gracias de antemano.
Última edición por Visente el Jue Ago 04, 2011 8:03 am, editado 1 vez en total
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor mauricio » Jue Jul 21, 2011 8:18 pm

Hola...

¿Sobre que aplicación quieres hacer esto (Writer, Calc)?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.4 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5598
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Macro Cabecera

Notapor Visente » Vie Jul 22, 2011 10:38 am

Sobre Writer , perdon por no aclararlo antes. :(
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor FJCC-ES » Lun Jul 25, 2011 7:10 pm

Ejemplos de código para cambiar el estilo de la cabecera y insertar una imagen:

Modificar el estilo "Encabezamiento"
Código: Seleccionar todo   Expandir vistaContraer vista
oFam_Estilos = ThisComponent.StyleFamilies
oEstilos_Para = oFam_Estilos.getByName("ParagraphStyles")
oEstilo_Encab = oEstilos_Para.getByName("Header")
oEstilo_Encab.CharFontName = "Arial"


Cambiar la fuente directamente
Código: Seleccionar todo   Expandir vistaContraer vista
oFam_Estilos = ThisComponent.StyleFamilies
oEstilos_Pagina = oFam_Estilos.getByName("PageStyles")
oEstilo_Prede = oEstilos_Pagina.getByName("Standard")
oHeaderText = oEstilo_Prede.HeaderText
Enum_Paraf = oHeaderText.createEnumeration()
While Enum_Paraf.hasMoreElements
   Paraf = Enum_Paraf.nextElement()
   Paraf.CharFontName = "Times New Roman"
WEnd


Insertar una imagen (26-7-2011)
Código: Seleccionar todo   Expandir vistaContraer vista
Dim Size as New com.sun.star.awt.Size
oFam_Estilos = ThisComponent.StyleFamilies
oEstilos_Pagina = oFam_Estilos.getByName("PageStyles")
oEstilo_Prede = oEstilos_Pagina.getByName("Standard")
oHeaderText = oEstilo_Prede.HeaderText
Encab_Start = oHeaderText.Start
Size.Height = 500
Size.Width = 1000
GraphObj = ThisComponent.createInstance("com.sun.star.text.TextGraphicObject")
GraphObj.GraphicURL = "file:///C:/MyPicture.JPG"
GraphObj.Size = Size
GraphObj.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
oHeaderText.insertTextContent(Encab_Start, GraphObj, False)
Última edición por FJCC-ES el Mar Jul 26, 2011 3:50 pm, editado 2 veces en total
FJCC-ES
 
Mensajes: 612
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Macro Cabecera

Notapor Visente » Mar Jul 26, 2011 12:36 pm

Muchas Gracias por la respuesta, al final usare la primera opcion y la tercera, pero en la tercera me da problemas en "GraphicObj.Size = Size" me dice que "Error de ejecucion de basic Variable de objeto no establecida", creia que era pq no cojia bien la url, pero con el observador veo que si que la coje y al final no se pq podria ser.
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor Visente » Mar Jul 26, 2011 1:16 pm

Creo que he solucionado el problema anterior, lo que he hecho es poner el tamaño directamente en el objeto, pero ahora me surge otro problema:

Dim Size as New com.sun.star.awt.Size
oFam_Estilos = ThisComponent.StyleFamilies
oEstilos_Pagina = oFam_Estilos.getByName("PageStyles")
oEstilo_Prede = oEstilos_Pagina.getByName("Standard")
oHeaderText = oEstilo_Prede.HeaderText
Encab_Start = oHeaderText.Start
GraphObj = ThisComponent.createInstance("com.sun.star.text.TextGraphicObject")
GraphObj.GraphicURL = "file:///C:/MyPicture.JPG"
GraphObj.Size.Height = 100
GraphObj.Size.Width = 100
oHeaderText.insertTextContent(Encab_Start, Graph_Obj, False)------> PROBLEMA: Variable Objeto no establecida.
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor FJCC-ES » Mar Jul 26, 2011 3:50 pm

No sé como lo hice pero el código que publique no era la versión final. :oops: Lo he corregido.
FJCC-ES
 
Mensajes: 612
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Macro Cabecera

Notapor Visente » Mié Jul 27, 2011 12:47 pm

No pasa nada la intencion es lo que cuenta,gracias de todas formas, al fina he conseguido insetar la imagen con "Stan.HeaderBackGraphicURL = ConvertToURL( "file:///C:/MyPicture.JPG" )" , lo unico malo es que me aparece en el centro de la cabecera y lo intento solucionar con "Stan.HeaderBackGraphicLocation="HEADER_LEFT_TOP" , pero me desaparece la imagen :(.

Por cierto otro problema que me encuentro es a la hora de cambiar el color del texto de la cabecera y su tamaño, consigo cambiar el color y el tamaño pero para variar cambio el todo el documento!!, me gustaria cambiar solo el de la cabecera.
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor FJCC-ES » Jue Jul 28, 2011 5:24 am

Sugiero
Código: Seleccionar todo   Expandir vistaContraer vista
Stan.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP


¿Puede subir el código para cambiar el color y tamaño del texto?
FJCC-ES
 
Mensajes: 612
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Macro Cabecera

Notapor Visente » Mié Ago 03, 2011 9:45 pm

Muchas Gracias !! Me ha servido de mucho, al final resolvi el problemas de tamaño y color, mañana cuando llegue al trabajo pondre el codigo para que a la gente le sirva de ayuda.
De todas maneras me queda un ultimo problemilla y termino con la macro, he estado toda la mañana intentando hacer un boton aceptar para que me cierre el dialogo, pero no hay manera, intento hacer debajo de la macro principal otra macro con Dlg.endExecute() y me dice que el objeto no esta declarado, lo declaro como en la macro principal y me vuelve abrir el dialogo XDDDDDDD
Asi es como lo intente la primera vez y intento asociar el boton aceptar a la macro bAceptar:
Sub EjecutarMiDialogo1()
Dim oDialogo As Object

'Cargamos la librería Standard en memoria
DialogLibraries.LoadLibrary( "Standard" )
'Cargamos el cuadro de diálogo en memoria
oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("miDialogo") )
'Lo ejecutamos (mostramos)

oDialogo.execute()

'Lo liberamos de memoria
oDialogo.dispose()

End Sub

Sub bAceptar()
oDialog.endExecute()
End Sub
Creo que le tendre que pasar algo de la primera macro a la segunda, supongo que sera el oDialog o algo asi .

Espero haberme explicado bien y gracias de antemano :)
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: Macro Cabecera

Notapor FJCC-ES » Mié Ago 03, 2011 11:46 pm

Declare oDialogo como variable global
Código: Seleccionar todo   Expandir vistaContraer vista
Dim oDialogo As Object

Sub EjecutarMiDialogo1()

'Cargamos la librería Standard en memoria
DialogLibraries.LoadLibrary( "Standard" )
'Cargamos el cuadro de diálogo en memoria
oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("miDialogo") )
'Lo ejecutamos (mostramos)

oDialogo.execute()

'Lo liberamos de memoria
oDialogo.dispose()

End Sub

Sub bAceptar()
oDialog.endExecute()
End Sub
FJCC-ES
 
Mensajes: 612
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Macro Cabecera[RESUELTO]

Notapor Visente » Jue Ago 04, 2011 8:02 am

Muchas Gracias!!!! :D Al final me ha servido soys unos cracks !!! ya he termiando!! ueeeeee!!! la verdad que no se me ocurriera lo de la variable global XD , si es como en Java.

Aqui dejo el codigo de mi cabecera para ver si le sirve a alguien :


Código: Seleccionar todo   Expandir vistaContraer vista
Sub MacroCabecera

       oFam_Estilos = ThisComponent.StyleFamilies
       oEstilos_Para = oFam_Estilos.getByName("ParagraphStyles")
       oEstilo_Encab = oEstilos_Para.getByName("Header")
        oEstilo_Encab.CharFontName = "Arial Narrow"
   oEstilo_Encab.CharHeight = 8.5
   oEstilo_Encab.CharColor = RGB(0,0,800)
   oDoc = ThisComponent
   oStyles = oDoc.getStyleFamilies
   oPS = oStyles.getByName("PageStyles")
   Stan = oPS.getByName("Standard")
   Stan.HeaderIsOn = True
   Stan.HeaderHeight = 2500 + Stan.HeaderBodyDistance
   Stan.HeaderBackGraphicURL = ConvertToURL( "file:///C:/OpenOffice/logo.JPG" )
   Stan.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP
        Stan.HeaderText.String = "" & Chr(13)&  Chr(9) & "texto en la cabecera"
     End Sub




Espero que a la gente le sirva, al final a base de golpes preguntar en el foro, leer el manual de mauricio y otros manuales, lo he podido hacer.

Una ultima pregunta ¿ como le puedo pasar la macro a mis compañeros? vosotros cuando pasis el archivo ya contienen las macros, yo se las paso a mis compañeros y no la tienen, ¿como lo haceis?
OpenOffice 3.2 en Windows XP
Visente
 
Mensajes: 7
Registrado: Vie Jul 08, 2011 7:34 am

Re: [RESUELTO]Macro Cabecera

Notapor visatico » Dom Feb 25, 2018 6:26 pm

Buenas,
me ha gustado el ejemplo.
Lo he estado probando y hay una cosa que no sé como sería.

La idea es tener 2 cabeceras, una para la primera página y otra para el resto de páginas del documento.

Es posible hacer esto?
OpenOffice 3.1/LibreOffice 5.3.1 en Windows 7
visatico
 
Mensajes: 5
Registrado: Dom Feb 25, 2018 6:22 pm

Re: [RESUELTO]Macro Cabecera

Notapor mauricio » Dom Feb 25, 2018 6:44 pm

Tienes que usar dos estilos de página para esto... pero... no es buena idea usar un tema tan viejo, es mejor que siempre habrás uno nuevo explicando detalladamente el problema y si es necesario hacer referencia a este tema.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.4 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5598
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: [RESUELTO]Macro Cabecera

Notapor visatico » Dom Feb 25, 2018 6:50 pm

Ok,
estaba buscando como hacer esto y he visto que este tema era justo lo que quería.
OpenOffice 3.1/LibreOffice 5.3.1 en Windows 7
visatico
 
Mensajes: 5
Registrado: Dom Feb 25, 2018 6:22 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados