[RESUELTO] Como crea 2 encabezados en un documento Writer

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
visatico
Mensajes: 8
Registrado: Dom Feb 25, 2018 6:22 pm

[RESUELTO] Como crea 2 encabezados en un documento Writer

Mensaje por visatico »

Hola,
estoy intentando hacer una macro que muestre 2 cabeceras en un documento writer.

Una para la primera página y otra para el resto de páginas.

Me estoy basando en el asunto resuelto https://forum.openoffice.org/es/forum/v ... =50&t=5650 que he visto.

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.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP
Stan.HeaderText.String = "" & Chr(13)& Chr(9) & "texto en la cabecera1"

oStyles2 = oDoc.getStyleFamilies
oPS2 = oStyles2.getByName("PageStyles")
Stan2 = oPS2.getByName("Standard")
Stan2.HeaderIsOn = True
Stan2.HeaderHeight = 2500 + Stan2.HeaderBodyDistance
Stan2.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP
Stan2.HeaderText.String = "" & Chr(13)& Chr(9) & "texto en la cabecera2"

'
end sub

El problema es que no sé como poner el primer estilo en la página 1 y el estilo2 en el resto de las página a medida que se vayan creando.
Tal como está se queda la segunda cabecera conforme vas añadiendo nueva páginas.

Saludos.
Última edición por visatico el Lun Feb 26, 2018 6:47 pm, editado 1 vez en total.
OpenOffice 3.1/LibreOffice 5.3.1 en Windows 7
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Como crea 2 encabezados en un documento Writer

Mensaje por FJCC-ES »

El encabezamiento es una propiedad del estilo de página. Para mostrar diferentes encabezamientos, las páginas tienen que tener diferentes estilos de página. Si aplica el estilo de página Primera Página ('First Page' en inglés) a la primera pagina el resto de las páginas tendrán el estilo Predeterminado. (En la definición de Primera Página, el Estilo Siguiente es el estilo Predeterminado) En ese caso, la macro puede cambiar las propiedades de cada estilo.

Código: Seleccionar todo

oDoc = ThisComponent
oStyles = oDoc.getStyleFamilies
oPS = oStyles.getByName("PageStyles")
Prim = oPS.getByName("First Page")
Prim.HeaderIsOn = True 
Prim.HeaderHeight = 2500 + Prim.HeaderBodyDistance
Prim.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP
Prim.HeaderText.String = "" & Chr(13)& Chr(9) & "texto en la cabecera1"

Stan = oPS.getByName("Standard")
Stan.HeaderIsOn = True 
Stan.HeaderHeight = 2500 + Stan.HeaderBodyDistance
Stan.HeaderBackGraphicLocation= com.sun.star.style.GraphicLocation.LEFT_TOP
Stan.HeaderText.String = "" & Chr(13)& Chr(9) & "texto en la cabecera2" 
visatico
Mensajes: 8
Registrado: Dom Feb 25, 2018 6:22 pm

Re: Como crea 2 encabezados en un documento Writer

Mensaje por visatico »

Ok,
lo pruebo
Este comando Prim = oPS.getByName("First Page") es el que no encontraba

saludos
OpenOffice 3.1/LibreOffice 5.3.1 en Windows 7
visatico
Mensajes: 8
Registrado: Dom Feb 25, 2018 6:22 pm

Re: Como crea 2 encabezados en un documento Writer

Mensaje por visatico »

Perfecto!
:bravo:
OpenOffice 3.1/LibreOffice 5.3.1 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Como crea 2 encabezados en un documento Writer

Mensaje por mauricio »

Por favor, si consideras que el tema ha sido resuelto, marcalo como tal, mira en: ¿Cómo marcar como RESUELTO un tema?, de esta forma, conseguiremos un Foro más ordenado.

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