264 lines
4.2 KiB
Markdown
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
|