easymacro/doc/docs/docs/methods.md

264 lines
4.2 KiB
Markdown

## Métodos comúnes a todos los documentos.
<br>
### **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 evitar esto se puede limpiar este historial.
```py
doc = app.active
doc.clear_undo()
```
<br>
### **close**
Cerrar un archivo.
```py
doc = app.docs.new()
app.msgbox(doc.title)
doc.close()
```
<br>
### **copy**
Copiar la selección activa al portapapeles.
```py
doc = app.active
doc.copy()
```
<br>
### **export**
Exportar a otros formatos.
```py
doc = app.docs.new()
ruta = '/home/elmau/miarchivo.xlsx'
filtro = 'xlsx'
doc.export(ruta, filtro)
ruta = '/home/elmau/miarchivo.xls'
filtro = 'xls'
doc.export(ruta, filtro)
doc = app.docs.new('writer')
ruta = '/home/elmau/miarchivo.docx'
filtro = 'docx'
doc.export(ruta, filtro)
ruta = '/home/elmau/miarchivo.doc'
filtro = 'doc'
doc.export(ruta, filtro)
ruta = '/home/elmau/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)
```
<br>
### **new**
Crear nuevo documento, la aplicación predeterminada es Calc.
```py
doc = app.docs.new()
app.debug(doc.type)
```
Para un nuevo documento `writer`.
```py
doc = app.docs.new('writer')
app.debug(doc.type)
```
Otros documentos.
```py
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.
```py
propiedades = {'Hidden': True}
doc = app.docs.new('writer', propiedades)
mensaje = f'{doc.type} - {doc.title}'
app.msgbox(mensaje)
doc.visible = True
```
!!! tip
No es necesario que un documento este visible para manipularse.
<br>
### **open**
Abrir archivos.
```py
ruta = '/home/elmau/mi_archivo.ods'
doc = app.docs.open(ruta)
```
!!! tip "Consejo"
No es necesario pasar las rutas en formato URL.
Puede abrir cualquier archivo que sea soportado por LibreOffice.
```py
ruta = '/home/elmau/ejemplo.xlsx'
doc = app.docs.open(ruta)
```
Abrir con argumentos.
```py
ruta = '/home/elmau/ejemplo.ods'
argumentos = {'Password': 'siscaloburropanzon'}
doc = app.docs.open(ruta, argumentos)
```
<br>
### **paste**
Copiar el contenido del portapapeles, en la selección actual.
```py
doc = app.active
doc.paste()
```
<br>
### **paste_special**
Mostrar el cuadro de diálogo `Pegado Especial`.
!!! tip "Consejo"
Solo se mostrará si existe contenido en el portapapeles.
```py
doc = app.active
doc.paste_special()
```
<br>
### **paste_values**
Pegar solo los valores.
```py
doc = app.active
doc.paste_values()
```
Si el destino no esta vacío, el usuario verá el cuadro de mensaje de confirmación.
<br>
### **save**
Guardar un nuevo documento.
```py
path = '/home/elmau/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.
```py
ruta = '/home/mau/ejemplo.ods'
doc = app.docs.open(ruta)
nueva_ruta = '/home/mau/otro_nombre.ods'
doc.save(nueva_ruta)
```
<br>
### **set_focus**
Enviar el foco al documento.
```py
for doc in app.docs:
app.debug(doc.title)
doc.set_focus()
app.sleep(1)
```
<br>
### **to_pdf**
Exportar a PDF.
```py
doc = app.active
ruta = '/home/elmau/ejemplo.pdf'
doc.to_pdf(ruta)
```
Si no se establece una ruta, se devuelve el PDF en memoria.
```py
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.
Por ejemplo, exportar solo las páginas 2 a 4:
```py
doc = app.active
ruta = '/home/elmau/ejemplo.pdf'
opciones = {'PageRange': '2-4'}
doc.to_pdf(ruta, opciones)
```
<br>
[1]: https://wiki.documentfoundation.org/Macros/Python_Guide/PDF_export_filter_data