Macro para definir el formato de página en OpenOffice Writer

Esta macro permite definir el formato de página de un documento OpenOffice Writer.

Las dimensiones alto y ancho del papel, así como de los márgenes, se expresan en centímetros.

El diseño de página se indica por las claves DI para derecha e izquierda, R para reflejado, D para derecha e I para izquierda.

Si el séptimo argumento es true la orientación será apaisada, con false será vertical

 

sub Main
' ejemplo de uso
    FormatoPagina 21.55, 27, 3, 3, 2, 2, false, "DI"
end sub

Sub FormatoPagina(cmAncho as single, cmAlto as single, _
    cmMargenIzq as single, cmMargenDer as single, _
    cmMargenSup as single, cmMargenInf as single, _
    lOrientacionApaisada as boolean, _
    cDisenyoPagina as string )
   
  ' cDisenyoPagina puede ser DI para derecha, izquierda
  ' R para reflejado, D para derecha, I para izquierda
   
  Dim oStyleFamilies, oFamilies, oPageStyles, oStyle
  Dim oVCurs, oPageStyleName
  Dim oDoc
 
  oDoc = ThisComponent
  oVCurs = oDoc.CurrentController.getViewCursor()
  oPageStyleName = oVCurs.PageStyleName
  oPageStyles = oDoc.StyleFamilies.getByName("PageStyles")
  oStyle  = oPageStyles.getByName(oPageStyleName)

  With oStyle
    .Width = cmAncho*1000
    .Height = cmAlto*1000
    .LeftMargin = cmMargenIzq*1000
    .TopMargin = cmMargenSup *1000
    .RightMargin = cmMargenDer*1000
    .BottomMargin = cmMargenInf*1000
    .IsLandscape = lOrientacionApaisada
   
    select case uCase(cDisenyoPagina)
    case "DI"
        .PageStyleLayout = com.sun.star.style.PageStyleLayout.ALL
    case "R"
        .PageStyleLayout = com.sun.star.style.PageStyleLayout.MIRRORED
    case "I"
        .PageStyleLayout = com.sun.star.style.PageStyleLayout.LEFT
    case "D"
        .PageStyleLayout = com.sun.star.style.PageStyleLayout.RIGHT
    end select     
  End With

End Sub

No hay reacciones, todavía


Form is loading...

Otros usuarios vieron...

  • Mismo BASIC pero diferentes objetos

    MS Office (MSO) y OpenOffice.org (OOo) no pueden ejecutar el mismo código macro. MSO utiliza el código VBA (Visual Basic for Applications) mientras que O

  • Esta función devuelve la letra del NIF asociada a un número de DNI

    Function LetraNif(dni As Long) As String
    LetraNif = Mid("TRWAGMYFPDXBNJZSQVHLCKE", (dni Mod 23) + 1, 1)
    End Function
  • Insertar la hora actual en una celda es sencillo.

    Pero no deberemos utilizar la función AHORA(), pues cada vez que se recalcule la hoja se actualizará.

    Hacer que un b

Patrocinado por SBS  Contacto • ©2018 by SalvaDCH