Txhawm rau npaj cov ntaub ntawv hloov dua siab tshiab peb xav tau
Daim ntawv thov uWSGI yooj yim tshaj plaws hauv python muaj ib daim ntawv thov kev ua haujlwm nrog ob qhov kev sib cav ib puag ncig thiab 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) # ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ
Koj tuaj yeem, tau kawg, kuj ntxiv kev ua yuam kev.
Hloov cov ntawv xeem ib nplooj ntawv odt rau pdf yog kwv yees li 1,5 npaug sai dua piv rau
Tau qhov twg los: www.hab.com