XML-RPC openoffice document convertion server
Project description
Install Cloudooo
================
$ python2.6 setup.py install
Warnings:
- you must have installed setuptools>=0.6c11 in this python.
Install LibreOffice / OpenOffice.org
====================================
Install LibreOffice or OpenOffice.org.
- http://www.libreoffice.org/download/
- http://download.openoffice.org/
Create Configuration File
=========================
The configuration file is used to start the application using paster.
$ cp ./cloudooo/samples/samples.conf . # Copy to current folder
The next step is define some attributes in cloudooo.conf:
- working_path - folder to run the application. This folder need be created.
- uno_path - folder where UNO library is installed (ex. /opt/libreoffice/basis-link/program/)
- soffice_binary_path - folder where soffice.bin is installed (ex. /opt/libreoffice/program/)
Run Application
===============
$ paster serve ./cloudooo.conf
or run as a daemon:
$ paster serve ./cloudoo.conf --daemon
Stop Application
===============
$ kill -1 PASTER_PID
Warning: always use SIGHUP because only with this signal all processes are
stopped correctly.
Cloudooo Description
=====================
- XMLRPC + WSGI will be one bridge for easy access to LibreOffice / OpenOffice.org. This will implement one XMLRPC server into WSGI (Paster).
- PyUno is used to connect to LibreOffice / OpenOffice.org stated with open socket. The features will be handled all by pyuno.
- Only a process will have access to LibreOffice / OpenOffice.org by time.
- All clients receive the same object(proxy) when connects with XMLRPC Server.
Managing LibreOffice / OpenOffice.org process
- start 'soffice.bin';
- Pyuno start 'soffice.bin' processes and the communication is through sockets;
- 'soffice.bin' processes run in brackground;
- control 'soffice.bin';
- If the socket lose the connection, cloudooo kills the process, restartes processes and submit again the file;
XMLRPC Server - XMLRPC + WSGI
-----------------------------
- Send document to 'soffice.bin' and return the document converted with metadata;
- XMLRPC receives a file and connects to 'soffice.bin' process by pyuno;
- The pyuno opens a new document, write, add metadata and returns the document edited or converted to xmlrpc and it return the document to the user;
- When finalize the use of 'soffice.bin', should make sure that it was finalized;
- Export to another format;
- Invite document and return metadata only;
- Edit metadata of the document;
- Problems and possible solution
- 'soffice.bin' is stalled;
- finalize the process, start 'soffice.bin' and submit the document again(without restart the cloudooo);
- 'soffice.bin' is crashed;
- finalize the process, verify if all the process was killed, start 'soffice.bin' and submit the document again(without restart the cloudooo)
- 'soffice.bin' received the document and stalled;
- if 'soffice.bin' isn't responding, kill the process and start
- The document that was sent is corrupt;
- write in log the error and verify that the process aren't in memory
1.2.2 (2010-02-07)
==================
- No longer use Xvfb.
1.2.1 (2010-01-21)
==================
- Improve ERP5 compatibility.
1.2.0 (2010-01-19)
==================
- Support LibreOffice3.3rc3.
1.1.0 (2010-01-13)
===================
- Refactor runCloudOOoUnitTest.py to control better the daemon process
- Use argparse instead of optparse
- Refactor tests to use boolean asserts to validate True or False.
- Use python-magic to validate the output documents according to mimetype.
- Change folder structure of cloudooo to put handler, mimemapper, helpers
related to handler in same folder than handler.
- Refactor code to use json instead of jsonpickle.
- Add getTableItem, getTableItemList and getTableMatrix for OOGranulate
- Add getParagraphItemList and getParagraphItem for OOGranulate
- Add getImageItemList and getImage for OOGranulate
- Add OdfDocument
- Add granulate interface.
1.0.9
=====
- use pkg_resources to get helper scripts.
- move internal scripts to helper folder.
- removed cloudooo as dependency of internal scripts.
- modified way that the filters of OpenOffice.org are passed.
1.0.8
=====
- Remove all attributes that works with cloudooo script paths.
- Use all scripts according to your python eggs.
- Fixed problem when a spreadsheet will be converted to html.
1.0.7
=====
- Remove entry points, treat those as ordinary files.
- Search all script files using pkg_resources.
================
$ python2.6 setup.py install
Warnings:
- you must have installed setuptools>=0.6c11 in this python.
Install LibreOffice / OpenOffice.org
====================================
Install LibreOffice or OpenOffice.org.
- http://www.libreoffice.org/download/
- http://download.openoffice.org/
Create Configuration File
=========================
The configuration file is used to start the application using paster.
$ cp ./cloudooo/samples/samples.conf . # Copy to current folder
The next step is define some attributes in cloudooo.conf:
- working_path - folder to run the application. This folder need be created.
- uno_path - folder where UNO library is installed (ex. /opt/libreoffice/basis-link/program/)
- soffice_binary_path - folder where soffice.bin is installed (ex. /opt/libreoffice/program/)
Run Application
===============
$ paster serve ./cloudooo.conf
or run as a daemon:
$ paster serve ./cloudoo.conf --daemon
Stop Application
===============
$ kill -1 PASTER_PID
Warning: always use SIGHUP because only with this signal all processes are
stopped correctly.
Cloudooo Description
=====================
- XMLRPC + WSGI will be one bridge for easy access to LibreOffice / OpenOffice.org. This will implement one XMLRPC server into WSGI (Paster).
- PyUno is used to connect to LibreOffice / OpenOffice.org stated with open socket. The features will be handled all by pyuno.
- Only a process will have access to LibreOffice / OpenOffice.org by time.
- All clients receive the same object(proxy) when connects with XMLRPC Server.
Managing LibreOffice / OpenOffice.org process
- start 'soffice.bin';
- Pyuno start 'soffice.bin' processes and the communication is through sockets;
- 'soffice.bin' processes run in brackground;
- control 'soffice.bin';
- If the socket lose the connection, cloudooo kills the process, restartes processes and submit again the file;
XMLRPC Server - XMLRPC + WSGI
-----------------------------
- Send document to 'soffice.bin' and return the document converted with metadata;
- XMLRPC receives a file and connects to 'soffice.bin' process by pyuno;
- The pyuno opens a new document, write, add metadata and returns the document edited or converted to xmlrpc and it return the document to the user;
- When finalize the use of 'soffice.bin', should make sure that it was finalized;
- Export to another format;
- Invite document and return metadata only;
- Edit metadata of the document;
- Problems and possible solution
- 'soffice.bin' is stalled;
- finalize the process, start 'soffice.bin' and submit the document again(without restart the cloudooo);
- 'soffice.bin' is crashed;
- finalize the process, verify if all the process was killed, start 'soffice.bin' and submit the document again(without restart the cloudooo)
- 'soffice.bin' received the document and stalled;
- if 'soffice.bin' isn't responding, kill the process and start
- The document that was sent is corrupt;
- write in log the error and verify that the process aren't in memory
1.2.2 (2010-02-07)
==================
- No longer use Xvfb.
1.2.1 (2010-01-21)
==================
- Improve ERP5 compatibility.
1.2.0 (2010-01-19)
==================
- Support LibreOffice3.3rc3.
1.1.0 (2010-01-13)
===================
- Refactor runCloudOOoUnitTest.py to control better the daemon process
- Use argparse instead of optparse
- Refactor tests to use boolean asserts to validate True or False.
- Use python-magic to validate the output documents according to mimetype.
- Change folder structure of cloudooo to put handler, mimemapper, helpers
related to handler in same folder than handler.
- Refactor code to use json instead of jsonpickle.
- Add getTableItem, getTableItemList and getTableMatrix for OOGranulate
- Add getParagraphItemList and getParagraphItem for OOGranulate
- Add getImageItemList and getImage for OOGranulate
- Add OdfDocument
- Add granulate interface.
1.0.9
=====
- use pkg_resources to get helper scripts.
- move internal scripts to helper folder.
- removed cloudooo as dependency of internal scripts.
- modified way that the filters of OpenOffice.org are passed.
1.0.8
=====
- Remove all attributes that works with cloudooo script paths.
- Use all scripts according to your python eggs.
- Fixed problem when a spreadsheet will be converted to html.
1.0.7
=====
- Remove entry points, treat those as ordinary files.
- Search all script files using pkg_resources.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cloudooo-1.2.2.tar.gz
(304.4 kB
view details)
File details
Details for the file cloudooo-1.2.2.tar.gz
.
File metadata
- Download URL: cloudooo-1.2.2.tar.gz
- Upload date:
- Size: 304.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5901c20cf066a48a00d5d89d69d46afa72baabca158d3e23798e79d2135f77c |
|
MD5 | 986fa1411f967fbf16fbf863c4b5609d |
|
BLAKE2b-256 | 492a0139d11051d143e81d2182e8607843c23339077cdf0637131cb7210ebb47 |