easymacro/docs/es/docs/dp/shapes.md

202 lines
2.6 KiB
Markdown

## Propiedades
Todas las unidades en milésimas de centímetro.
---
### **anchor**
Anclaje de la forma, por default se agrega a la página.
#### Anclaje a una celda
```py
celda = hoja['A1']
forma.anchor = celda
```
<br>
### **height**
Alto de la forma.
```py
forma.height = 2000
```
<br>
### **name**
Devuelve o establece el nombre de la forma.
```py
app.debug(forma.name)
forma.name = 'otro_rectangulo'
app.debug(forma.name)
```
<br>
### **obj**
**Solo lectura.** Devuelve el objeto original pyUNO.
```py
objeto = forma.obj
```
<br>
### **possize**
Devuelve o establece la posición y el tamaño de la forma.
```py
posicion_y_tamaño = dict(
Width = 5000,
Height = 2000,
X = 3000,
Y = 1000,
)
forma.possize = posicion_y_tamaño
```
<br>
### **properties**
Devuelve un diccionario con todas las propiedades de la forma.
```py
for p, v in forma.properties.items():
app.debug(f'{p} = {v}')
```
Al establecer solo aplica las que se pasen en un diccionario.
```py
propiedades = dict(
LineColor = app.color('red'),
LineWidth = 100,
)
forma.properties = propiedades
```
!!! tip "Atención"
Aquí hay que usar los nombres "originales" de las propiedades de la forma en el API de LibreOffice.
<br>
### **resize_with_cell**
Si el tamaño de la forma cambia con la celda, solo cuando el anclaje es a una celda.
```py
forma.resize_with_cell = True
```
<br>
### **shape_type**
**Solo lectura**. Devuelve el tipo de forma.
```py
app.debug(forma.shape_type)
```
```
24/04/2023 13:55:32 - DEBUG - com.sun.star.drawing.RectangleShape
```
<br>
### **width**
Ancho de la forma.
```py
forma.width = 6000
```
<br>
### **x**
Posición en el eje X.
```py
forma.x = 5000
```
<br>
### **y**
Posición en el eje Y.
```py
forma.y = 1000
```
## Métodos
---
### **clone**
Clona la imagen en la misma hoja.
```py
imagen.clone()
```
Clona la imagen en otra hoja.
```py
imagen.clone(doc['Hoja5'].draw_page)
```
<br>
### **remove**
Eliminar la forma.
```py
forma.remove()
```
<br>
### **save**
Guarda la imagen en disco. Si no se pasa ningún argumento, toma la ruta del documento y el nombre de la imagen.
!!! tip inline end "Atención"
El documento ya debe estar guardado
```py
imagen.save()
```
Podemos pasar una ruta diferente, seguira tomando el nombre de la imagen.
```py
ruta = '/home/elmau/imagenes'
imagen.save(ruta)
```
Podemos cambiar el nombre.
```py
ruta = '/home/elmau/imagenes'
name = f'{hoja.name}_nuevo_nombre'
imagen.save(path, name)
```
<br>