# Métodos

### new

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

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

Para un nuevo documento `writer`.

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

Otros documentos.

    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.

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

No es necesario que el documento este visible para manipularse.

### open

Abrir archivos.

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

No es necesario pasar las rutas en formato URL.

Puede abrir cualquier archivo que sea soportado por LibreOffice.

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

Abrir con argumentos.

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

### save

Guardar un nuevo documento.

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

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

    doc.save()

Abrir un archivo existente y guardarlo con otro nombre.

    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.

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

### to_pdf

Exportar a PDF.

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

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

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

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

### export

Exportar a otros formatos.

    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.

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

### set_focus

Enviar el foco al documento.

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

### copy

Copiar la selección activa al portapapeles.

    doc = app.active
    doc.copy()

### paste

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

    doc = app.active
    doc.paste()

### paste_special

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

Solo se mostrará si existe contenido en el portapapeles.

    doc = app.active
    doc.paste_special()

### paste_values

Pegar solo los valores.

    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.

    doc = app.active
    doc.clear_undo()