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...