+++
title = "LibreOffice"
weight = 4
+++

### fonts

Devolver todas las fuentes visibles en LibreOffice. Mire [FontDescriptor][1]

```python
fonts = app.fonts()
for f in fonts:
    app.debug(f'Nombre: {f.Name} - Estilo: {f.StyleName}')
```


### filters

Devolver todos los filtros soportados en LibreOffice. Mire la [ayuda][2] y en [API FilterFactory][3] para más detalles.

```python
filtros = app.filters()
for f in filtros:
    info = f"Nombre UI: {f['UIName']} - Nombre: {f['Name']} - Tipo: {f['Type']}"
    app.debug(info)
```


### dispatch

Ejecutar cualquier comando `UNO` de LibreOffice, mire la [lista de comandos][4] y [API dispatch][5].

Este método automáticamente agrega el prefijo necesario: `.uno:`

```python
doc = app.active
comando = 'Gallery'
app.dispatch(doc, comando)
```

{{% notice tip %}}
Use este método solamente si no hay un método equivalente en `easymacro` o directamente en el API de LibreOffice.
{{% /notice %}}


### clipboard

Envíar contenido al portapapeles.

```python
app.clipboard.set('Los 7 samuráis')
```

Recuperar contenido del portapapeles.

```python
content = app.clipboard.get()
app.debug(content)
```

### disable

Deshabilitar un comando. Para una lista de comandos mire [DispatchCommands][4].

```python
comando = 'OpenFromCalc'
resultado = app.cmd.disable(comando)
app.debug(resultado)
```

`OpenFromCalc` es la opción para abrir documentos en Calc, deshabilita o habilita la entrada del menú y el icono en la barra de herramientas.

### enabled

Habilitar un comando.

```python
comando = 'OpenFromCalc'
resultado = app.cmd.enabled(comando)
app.debug(resultado)
```

### get_config

Obtener valores de la configuración de LibreOffice.

```python
nombre_node = '/org.openoffice.Office.Common/Help'
clave = 'System'
valor = app.get_config(nombre_node, clave)
app.debug(valor)

nombre_node = '/org.openoffice.Office.Common/Misc/'
clave = 'FirstRun'
valor = app.get_config(nombre_node, clave)
app.debug(valor)

clave = 'UseSystemFileDialog'
valor = app.get_config(nombre_node, clave)
app.debug(valor)
```

```
17/08/2022 14:14:12 - DEBUG - UNIX
17/08/2022 14:14:12 - DEBUG - False
17/08/2022 14:14:12 - DEBUG - True
```

### set_config

Establece un nuevo valor en la configuración de LibreOffice.

```python
nombre_nodo = '/org.openoffice.Office.UI/ColorScheme'
clave = 'CurrentColorScheme'
nuevo_valor = 'LibreOffice Dark'
resultado = app.set_config(nombre_nodo, clave, nuevo_valor)
app.debug(resultado)
```

Algunos nodos y claves interesantes:

* `/org.openoffice.Office.Common/Save/Document`
    * AutoSave
    * AutoSaveTimeIntervall


{{% notice warning %}}
No todos los valores de los nodos se pueden cambiar, algunos valores son de solo lectura.
{{% /notice %}}


[1]: https://api.libreoffice.org/docs/idl/ref/structcom_1_1sun_1_1star_1_1awt_1_1FontDescriptor.html
[2]: https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html
[3]: https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1document_1_1FilterFactory.html
[4]: https://wiki.documentfoundation.org/Development/DispatchCommands
[5]: https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1frame_1_1XDispatch.html#a42beb1ea2ddae35c076b6e65867025ea
