我正在尋找“任何檔案轉換器”的幫助,其中任何檔案檔案 [doc、docx、ppt、pptx] 都將轉換為 pdf。DOCX 和 PPTX 用 python 庫很容易處理,但是 DOCX 和 PPT 有點棘手。我在 7 個月前得到
的答案很難處理。尤其是使用 Unoconv 的那個(現在已棄用并更改為 Unoserv)。
初始代碼示例:
import os
import shutil
src = ".../srcpaths"
dst = ".../dstpaths"
ext = ['ppt', 'pptx', 'doc', 'docx']
for root, subfolders, filenames in os.walk(src):
for filename in filenames:
if os.path.splitext(filename)[1] in ext:
shutil.copy2(os.path.join(root, filename), os.path.join(dst, filename))
def ConvertToPDF(ext):
#some code#
ConvertToPDF('.ppt')
ConvertToPDF('.pptx')
ConvertToPDF('.doc')
ConvertToPDF('.docx')
uj5u.com熱心網友回復:
以下是我對解決方案的評論和最后的答案:
1.潘多克:
- 需要 pdf 乳膠處理器
- 不能很好地保留檔案的形狀
- 格式丟失
- 圖形問題
- 圖表問題
- 字體問題
- 格式選擇少
2. Unoconv/Unoserver
- 難以安裝和處理
- 需要 Libre Office 作為引擎
- 良好的轉換結果(不完美)
3. 基于云的解決方案:
- 不是免費的
- 對開源不友好
- 隱私問題
4. Google Drive API 轉換器:
- 使用某人的帳戶
- 上傳檔案——轉換——另存為PDF
- 隱私問題
5.LibreLambda
- 使用亞馬遜網路服務 (AWS)
- 隱私問題
簡單的解決方案:
通過在 cmd 子行程中運行該軟體直接使用該軟體。
需求:安裝 LibreOffice。最大優勢:可以在Windows和Linux上運行(應該針對linux進行修改)
這是我用于 Windows 的 Python 代碼:
import os
import subprocess
# path to the engine
path_to_office = r"C:\Program Files\LibreOffice\program\soffice.exe"
# path with files to convert
source_folder = r"C:\ConvertToPDF\input_files"
# path with pdf files
output_folder = r"C:\ConvertToPDF\output_files"
# changing directory to source
os.chdir(source_folder)
# assign and running the command of converting files through LibreOffice
command = f"\"{path_to_office}\" --convert-to pdf --outdir \"{output_folder}\" *.*"
subprocess.run(command)
print('Converted')
如果你可以修改為Linux,請隨時分享你的解決方案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/481831.html
上一篇:將PDF資料提取到資料框中
