Skip to content

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 Ubuntu

2. Python环境

  • Python版本:Python 3.7及以上
  • 安装Python:在WSL中运行以下命令安装Python和pip:
bash
sudo apt update
sudo apt install python3 python3-pip

3. 依赖工具

3.1 LibreOffice

unoconv依赖LibreOffice进行文档转换,安装命令如下:

bash
sudo apt install libreoffice

3.2 unoconv

安装unoconv工具:

bash
sudo apt install unoconv

4. 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