Er mwyn paratoi'r trosi dogfen sydd ei angen arnom
Mae'r cymhwysiad uWSGI symlaf yn python yn cynnwys cymhwysiad ffwythiant gyda dwy ddadl amgylchynol a 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) # ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ
Gallwch hefyd, wrth gwrs, ychwanegu trin gwallau.
Mae trosi ffeil odt un dudalen brawf i pdf tua 1,5 gwaith yn gyflymach o gymharu Γ’
Ffynhonnell: hab.com