Página 1 de 1

[RESUELTO] Como crea 2 encabezados en un documento Writer

Publicado: Dom Feb 25, 2018 7:14 pm
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.

Re: Como crea 2 encabezados en un documento Writer

Publicado: Lun Feb 26, 2018 6:28 am
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" 

Re: Como crea 2 encabezados en un documento Writer

Publicado: Lun Feb 26, 2018 7:45 am
por visatico
Ok,
lo pruebo
Este comando Prim = oPS.getByName("First Page") es el que no encontraba

saludos

Re: Como crea 2 encabezados en un documento Writer

Publicado: Lun Feb 26, 2018 5:15 pm
por visatico
Perfecto!
:bravo:

Re: Como crea 2 encabezados en un documento Writer

Publicado: Lun Feb 26, 2018 6:42 pm
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