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