LIBREOFFICE ONLINE · 2019. 7. 23. · 2 LibreOffice Online LibreOffice Desktop vs Online – PC,...

Post on 10-Sep-2020

11 views 1 download

Transcript of LIBREOFFICE ONLINE · 2019. 7. 23. · 2 LibreOffice Online LibreOffice Desktop vs Online – PC,...

hcastro@collabora.comhcvcastro@gmail.com

LIBREOFFICE ONLINE

Henry Castro

ASUNCIÓN | 19 Julio de 2019

2

LibreOffice Online

● LibreOffice Desktop vs Online– PC, Mobile, Cloud

● UNO, LibreOfficeKit, WebSocket● Cloud

– Arquitectura

– Seguridad– Integración

● Mobile Android, iOS

3

LibreOffice Desktop

4

UNO (Universal Network Object)

● Component Context– Servicios

● UNO objetos– Interfaces

● Implementación de Objetos– Lenguajes de programación

5

LibreOffice Source Code

● https://docs.libreoffice.org/Servicios– Funcionalidad auxiliar para implementar

componentes UNO– Herramientas de acceso a bases de datos, para

aplicación de base de datos "base"

– Código fuente de la aplicación Writer– Código fuente de la aplicación Calc

– Código fuente de la aplicación Impress

6

LibreOffice Writer

7

LibreOffice Writer Headless

8

Tiled Rendering

9

Cliente (Navegador)

10

Leaflet, JavaScript librería

https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png

11

LibreOffice Online

12

LibreOffice OnLine WebSocket Daemon)

13

LibreOffice OnLine

14

LibreOfficeKit

LibreOfficeKit

LibreOffice Core

Jaula (Chroot)

15

LibreOfficeKit API

● C and C++, in-process (fácil depuración)● Operaciones de archivo

– loadDocument(), saveAs()

● Operaciones de renderizacion– paintTile(), setPart(), getDocumentSize(), ...

● Operaciones de interacciones– postKeyEvent(), postMouseEvent(),

postUnoCommand(), paste(), setTextSelection(), ...

16

Demostracion

17

Usando el protocolo WOPI para integrar con LibreOffice Online

● Uno o mas instancias de servidor loolwsd● Un aplicación web (HTML) donde anidará el

iframe de LibreOffice● Implementar REST endpoints del protocolo

WOPI● Personalizar los elementos de Interfaz

18

WOPI (Web Application Open Platform Interface)

Iframe with LibreOffice Online

Aplicacion Web

WOPI host (provee los datos)

WOPI cliente(Libre Online server side)

19

Iframe src

https://<client>:<port>/loleaflet/<hash>/loleaflet.html?WOPISrc=https://<WOPI host URL>/<...>/wopi*/files/<id> ?access_token=<number>

20

REST endpoints

Descargar el documento

GET https://<WOPI host URL>/<...>/wopi*/files/<id>/contents?access_token=<token>

https://wopi.readthedocs.io/projects/wopirest/en/latest/files/GetFile.html

21

REST endpoints

Subir el documento

POST https://<WOPI host URL>/<...>/wopi*/files/<id>/contents?access_token=<token>

https://wopi.readthedocs.io/projects/wopirest/en/latest/files/PutFile.html

22

REST endpoints

Propiedades del documento

Https://<WOPI host URL>/<...>/wopi*/files/<id>?access_token=<token>

https://wopi.readthedocs.io/projects/wopirest/en/latest/files/CheckFileInfo.html

23

Discovery service

Obtener informacion de como iniciar el iframe

https://<wopiclient>/hosting/discovery

https://wopi.readthedocs.io/projects/wopirest/en/latest/files/CheckFileInfo.html

24

Ejemplo de implementación

● https://github.com/nextcloud/richdocuments

● PHP y Javascript

25

Demostracion

All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 4.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.

Agradecimientos / Cierre