L'application python uWSGI la plus simple consiste en une fonction d'application avec deux arguments, environ et start_response
import os #
import pylokit #
import tempfile #
import webob #
office = pylokit.Office('/usr/lib/libreoffice/program') # LibreOffice
def application(environ, start_response): # uWSGI
request = webob.Request(environ) #
file = request.POST['file'] # multipart/form-data file
filename, extension = os.path.splitext(file.filename) #
with tempfile.NamedTemporaryFile(suffix=extension) as inp, tempfile.NamedTemporaryFile(suffix='.%s' % request.path.split('/')[-1]) as out: # ( unoconv-api)
inp.write(file.file.read()) #
inp.flush() # (.. LibreOfficeKit - )
with office.documentLoad(inp.name) as doc: #
doc.saveAs(out.name) # ( )
with open(out.name, 'rb') as out2: #
response = webob.Response(body=out2.read()) #
return response(environ, start_response) #
Vous pouvez, bien sûr, également ajouter la gestion des erreurs.
La conversion d'un fichier odt d'une seule page de test en pdf est environ 1,5 fois plus rapide que unoconv-api .