## Métodos comúnes a todos los documentos.
### **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() ```
### **close** Cerrar un archivo. ```py doc = app.docs.new() app.msgbox(doc.title) doc.close() ```
### **copy** Copiar la selección activa al portapapeles. ```py doc = app.active doc.copy() ```
### **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) ```
### **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.
### **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) ```
### **paste** Copiar el contenido del portapapeles, en la selección actual. ```py doc = app.active doc.paste() ```
### **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() ```
### **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.
### **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) ```
### **set_focus** Enviar el foco al documento. ```py for doc in app.docs: app.debug(doc.title) doc.set_focus() app.sleep(1) ```
### **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) ```
[1]: https://wiki.documentfoundation.org/Macros/Python_Guide/PDF_export_filter_data