万能PDF转换器
Universal PDF converter
我正在寻找“任何文档转换器”的帮助,其中任何文档文件 [doc、docx、ppt、pptx] 都将转换为 pdf。 DOCX 和 PPTX 使用 python 库很容易处理,但是 DOC 和 PPT 有点棘手。
我 7 个月前的 answers 有点难对付。特别是使用 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')
以下是我对解决方案的回顾和最后的回答:
1.潘多克:
- 需要 pdf 乳胶处理器
- 没有很好地保留文件的形状
- 格式丢失
- 图形问题
- 图表问题
- 字体问题
- 格式选择不足
2。 Unoconv/Unoserver
- 难以安装和处理
- 需要 Libre Office 作为引擎
- 良好的转换结果(不完美)
3。 Cloud-based 解决方案:
- 不免费
- 不open-source友好
- 隐私问题
4. Google 驱动器 API 转换器:
- 使用某人的帐户
- 上传文档 – 转换 – 另存为 PDF
- 隐私问题
5. LibreLambda
- 使用亚马逊网络服务 (AWS)
- 隐私问题
简单的解决方法:
在cmd子进程中运行直接使用该软件。
需要:安装 LibreOffice。
最大优势:Windows和Linux都可以运行(应该修改为linux)
这是我的 Python 代码 Windows:
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,欢迎分享解决方法
我正在寻找“任何文档转换器”的帮助,其中任何文档文件 [doc、docx、ppt、pptx] 都将转换为 pdf。 DOCX 和 PPTX 使用 python 库很容易处理,但是 DOC 和 PPT 有点棘手。
我 7 个月前的 answers 有点难对付。特别是使用 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')
以下是我对解决方案的回顾和最后的回答:
1.潘多克:
- 需要 pdf 乳胶处理器
- 没有很好地保留文件的形状
- 格式丢失
- 图形问题
- 图表问题
- 字体问题
- 格式选择不足
2。 Unoconv/Unoserver
- 难以安装和处理
- 需要 Libre Office 作为引擎
- 良好的转换结果(不完美)
3。 Cloud-based 解决方案:
- 不免费
- 不open-source友好
- 隐私问题
4. Google 驱动器 API 转换器:
- 使用某人的帐户
- 上传文档 – 转换 – 另存为 PDF
- 隐私问题
5. LibreLambda
- 使用亚马逊网络服务 (AWS)
- 隐私问题
简单的解决方法:
在cmd子进程中运行直接使用该软件。
需要:安装 LibreOffice。 最大优势:Windows和Linux都可以运行(应该修改为linux)
这是我的 Python 代码 Windows:
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,欢迎分享解决方法