pptx 转 pdf
pptx2pdf.py
点击查看代码
py
import os
import subprocess
import logging
from tempfile import TemporaryDirectory
# 配置日志记录
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def pptx_to_pdf(pptx_path, output_dir='.'):
"""使用unoconv将PPTX文件转换为PDF文件。"""
try:
# 确保输出目录存在
os.makedirs(output_dir, exist_ok=True)
# 生成输出PDF文件路径
base_name = os.path.basename(pptx_path).rsplit('.', 1)[0]
pdf_path = os.path.join(output_dir, f'{base_name}.pdf')
# 使用unoconv进行转换
command = ['unoconv', '-f', 'pdf', '-o', pdf_path, pptx_path]
logging.info(f'执行命令: {" ".join(command)}')
subprocess.run(command, check=True)
logging.info(f'成功将 {pptx_path} 转换为 {pdf_path}')
return pdf_path
except Exception as e:
logging.error(f'转换失败: {e}')
return None
if __name__ == '__main__':
# 示例用法
demo_pptx = './demo.pptx'
output_dir = './output_pdf'
pdf_file = pptx_to_pdf(demo_pptx, output_dir)
if pdf_file:
logging.info(f'PDF文件已生成: {pdf_file}')
else:
logging.error('PDF生成失败')运行环境
本脚本需要在特定环境下运行,以下是详细的环境要求和安装步骤:
1. 操作系统
建议使用Windows 10/11并安装WSL 2(Windows Subsystem for Linux),Ubuntu 20.04及以上版本。
安装WSL 2
在PowerShell中以管理员身份运行以下命令:
powershell
wsl --install -d Ubuntu2. Python环境
- Python版本:Python 3.7及以上
- 安装Python:在WSL中运行以下命令安装Python和pip:
bash
sudo apt update
sudo apt install python3 python3-pip3. 依赖工具
3.1 LibreOffice
unoconv依赖LibreOffice进行文档转换,安装命令如下:
bash
sudo apt install libreoffice3.2 unoconv
安装unoconv工具:
bash
sudo apt install unoconv4. Python依赖
确保项目所需的Python依赖已安装,可通过以下命令安装:
bash
pip install -r requirements.txt功能概述
功能概述
此Python脚本的主要功能是将PPTX文件转换为PDF文件,借助unoconv工具完成转换操作,同时使用日志记录功能对转换过程进行监控。
主要函数
pptx_to_pdf(pptx_path, output_dir='.')
- 功能:使用
unoconv将指定路径的PPTX文件转换为PDF文件。 - 参数:
pptx_path:需要转换的PPTX文件的路径。output_dir:PDF文件的输出目录,默认为当前目录。
- 返回值:转换成功返回PDF文件的路径,失败则返回
None。
使用方法
在脚本底部提供了示例用法,指定一个演示用的PPTX文件路径和输出目录,调用pptx_to_pdf函数进行转换,并根据返回结果记录日志。示例代码如下:
python
if __name__ == '__main__':
demo_pptx = './demo.pptx'
output_dir = './output_pdf'
pdf_file = pptx_to_pdf(demo_pptx, output_dir)
if pdf_file:
logging.info(f'PDF文件已生成: {pdf_file}')
else:
logging.error('PDF生成失败')错误处理
在pptx_to_pdf函数中使用try-except块捕获可能出现的异常,若转换过程中发生错误,会记录错误日志并返回None。