+++
title = "Métodos"
weight = 2
+++

### new

Crear nuevo documento, la aplicación predeterminada es Calc.

```python
doc = app.docs.new()
app.debug(doc.type)
```

Para un nuevo documento `writer`.

```python
doc = app.docs.new('writer')
app.debug(doc.type)
```

Otros documentos.

```python
doc = app.docs.new('draw')
app.debug(doc.type)

doc = app.docs.new('impress')
app.debug(doc.type)

doc = app.docs.new('math')
app.debug(doc.type)
```

Crear con argumentos.

```python
propiedades = {'Hidden': True}
doc = app.docs.new('writer', propiedades)
mensaje = f'{doc.type} - {doc.title}'
app.msgbox(mensaje)
doc.visible = True
```

{{% notice tip %}}
No es necesario que el documento este visible para manipularse.
{{% /notice %}}


### open

Abrir archivos.

```python
ruta = '/home/mau/Mi_archivo.ods'
doc = app.docs.open(ruta)
```

{{% notice tip %}}
No es necesario pasar las rutas en formato URL.
{{% /notice %}}


Puede abrir cualquier archivo que sea soportado por LibreOffice.

```python
ruta = '/home/mau/ejemplo.xlsx'
doc = app.docs.open(ruta)
```

Abrir con argumentos.

```python
ruta = '/home/mau/ejemplo.ods'
argumentos = {'Password': 'siscaloburropanzon'}
doc = app.docs.open(ruta, argumentos)
```


### save

Guardar un nuevo documento.

```python
path = '/home/mau/nuevo_documento.ods'
doc = app.docs.new()
doc.save(path)
```

Cualquier archivo, previamente guardado, que sea modificado puede ser guardado con:

```python
doc.save()
```

Abrir un archivo existente y guardarlo con otro nombre.

```python
ruta = '/home/mau/ejemplo.ods'
doc = app.docs.open(ruta)
nueva_ruta = '/home/mau/otro_nombre.ods'
doc.save(nueva_ruta)
```


### close

Cerrar un archivo.

```python
doc = app.docs.new()
app.msgbox(doc.title)
doc.close()
```


### to_pdf

Exportar a PDF.

```python
doc = app.active
ruta = '/home/mau/ejemplo.pdf'
doc.to_pdf(ruta)
```

Si no se establece una ruta, se devuelve el PDF en memoria.

```python
doc = app.active
pdf = doc.to_pdf()
app.debug(pdf)
```


Mire las [opciones del filtro de exportación a PDF][1], puede pasarlas como un diccionario como segundo argumento de este método.


### export

Exportar a otros formatos.

```python
doc = app.docs.new()
ruta = '/home/mau/miarchivo.xlsx'
filtro = 'xlsx'
doc.export(ruta, filtro)

ruta = '/home/mau/miarchivo.xls'
filtro = 'xls'
doc.export(ruta, filtro)

doc = app.docs.new('writer')
ruta = '/home/mau/miarchivo.docx'
filtro = 'docx'
doc.export(ruta, filtro)

ruta = '/home/mau/miarchivo.doc'
filtro = 'doc'
doc.export(ruta, filtro)

ruta = '/home/mau/miarchivo.rtf'
filtro = 'rtf'
doc.export(ruta, filtro)
```

Exportar en memoria.

```python
doc = app.docs.new()
filtro = 'xlsx'
excel_doc = doc.export(filter_name=filtro)
```


### set_focus

Enviar el foco al documento.

```python
for doc in app.docs:
    app.debug(doc.title)
    doc.set_focus()
    app.sleep(1)
```


### copy

Copiar la selección activa al portapapeles.

```python
doc = app.active
doc.copy()
```


### paste

Copiar el contenido del portapapeles, en la selección actual.

```python
doc = app.active
doc.paste()
```


### paste_special

Mostrar el cuadro de diálogo `Pegado Especial`.

{{% notice tip %}}
Solo se mostrará si existe contenido en el portapapeles.
{{% /notice %}}

```python
doc = app.active
doc.paste_special()
```


### paste_values

Pegar solo los valores.

```python
doc = app.active
doc.paste_values()
```

Si el destino no esta vacío, el usuario verá el cuadro de mensaje de confirmación.


### clear_undo

La mayoría de las acciones realizadas por código, quedan en el historial de acciones, por lo que el usuario puede deshacerlas. Para eviar esto se puede limpiar este historial.

```python
doc = app.active
doc.clear_undo()
```


[1]: https://wiki.documentfoundation.org/Macros/Python_Guide/PDF_export_filter_data
