我需要從外部站點捕獲 .doc 或 .docx 檔案,將它們轉換為 pdf 并回傳內容。為此,我添加了一個內容型別標題,通過我的 CMS 發布,通過 CDN 快取,并使用 Adob??e PDF Embed API 在 HTML 中顯示。我正在使用 Python 3.7。
作為測驗,這有效:
def generate_pdf():
subprocess.call(['soffice', '--convert-to', 'pdf',
'https://arbitrary.othersite.com/anyfilename.docx'])
sleep(1)
myfile = open('anyfilename.pdf', 'rb')
content = myfile.read()
os.remove('anyfilename.pdf')
return content
這會很好:
def generate_pdf(url):
result = subprocess.call(['soffice', '--convert-to', 'pdf', url])
content = result
return content
URL 可能包含任何引數或非法字符,這可能會導致難以猜測生成的檔案名。無論如何,最好不必休眠、保存、讀取和洗掉轉換后的檔案。
這可能嗎?
uj5u.com熱心網友回復:
我不認為 soffice 支持輸出到標準輸出,所以你沒有太多選擇。如果你輸出到一個臨時目錄,你可以使用 listdir 來獲取檔案名:
import subprocess
import tempfile
import os
url = "https://www.usariem.army.mil/assets/docs/journal/Lieberman_DS_survey_and_guidelines.docx"
with tempfile.TemporaryDirectory() as tmpdirname:
subprocess.run(["soffice", '--convert-to', 'pdf', "--outdir", tmpdirname, url], cwd="/")
files = os.listdir(tmpdirname)
if files:
print(files[0])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/495663.html
標籤:Python python-3.x ubuntu pdf生成 办公室
