ppt批量转换PDF(源代码+打包.exe文件可直接使用)

源码:

import os
from pptx import Presentation
import comtypes.client
import time


def get_file_size(file_path):
    """
    获取文件大小,单位为MB
    参数:
    file_path:文件路径
    返回:
    文件大小,单位为MB
    """
    return os.path.getsize(file_path) / (1024 * 1024)  # 转换为MB
def ppt_to_pdf(ppt_file, output_pdf):
    """
    将给定的 PowerPoint 文件转换为 PDF 文件
    参数:
    ppt_file:输入的 PowerPoint 文件路径
    output_pdf:输出的 PDF 文件路径
    """
    print(f"正在转换文件: {ppt_file}")
    start_time = time.time()  # 记录转换开始时间
    # 创建 PowerPoint 应用程序对象
    powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
    powerpoint.Visible = 1  # 设置 PowerPoint 可见性
    ppt = powerpoint.Presentations.Open(ppt_file)  # 打开 PPT 文件

    # 检查文件大小是否大于10MB
    file_size = get_file_size(ppt_file)
    if file_size > 10:
        print("本PPT文件较大,请耐心等待...")

    # 保存 PPT 文件为 PDF,根据输入文件的扩展名确定保存格式
    ppt.SaveAs(output_pdf, 32 if ppt_file.endswith('.pptx') else 32)
    ppt.Close()  # 关闭 PPT 文件
    powerpoint.Quit()  # 退出 PowerPoint 应用程序
    end_time = time.time()  # 记录转换结束时间
    elapsed_time = end_time - start_time  # 计算转换耗时
    print(f"文件转换完成: {output_pdf},耗时 {elapsed_time:.2f} 秒")


def convert_ppt_to_pdf_in_directory(directory):
    """
    批量将指定目录下的所有 PowerPoint 文件转换为 PDF 文件
    参数:
    directory:指定的目录路径
    """
    start_time = time.time()  # 记录程序开始时间

    ppt_files = [f for f in os.listdir(directory) if
                 f.endswith(('.ppt', '.pptx')) and os.path.isfile(os.path.join(directory, f))]
    total_files = len(ppt_files)  # 获取目录下的所有 PPT 文件数量

    # 如果没有找到任何 PPT 文件,则提前退出
    if total_files == 0:
        print(f"在目录 '{directory}' 中未找到任何 .ppt 或 .pptx 文件。")
        return

    print(f"在目录 '{directory}' 中找到以下 {total_files} 个 .ppt 和 .pptx 文件:")
    for index, file in enumerate(ppt_files, start=1):  # 枚举所有 PPT 文件
        print(f"{index}. {file}")  # 打印文件名

    # 提示用户是否要转换文件
    user_input = input("是否要转换这些文件?(y/n): ")
    if user_input.lower() != 'y':
        print("用户取消转换。")
        return

    for file in ppt_files:  # 遍历目录中的所有 PPT 文件
        filename, file_extension = os.path.splitext(file)  # 获取文件名和扩展名
        ppt_file = os.path.join(directory, file)  # 获取完整的文件路径
        pdf_file = os.path.join(directory, filename + '.pdf')  # 生成相应的 PDF 文件路径
        ppt_to_pdf(ppt_file, pdf_file)  # 调用函数将 PPT 文件转换为 PDF

    end_time = time.time()  # 记录程序结束时间
    elapsed_time = end_time - start_time  # 计算程序运行时间
    print(f"全部文件转换完成,共耗时 {elapsed_time:.2f} 秒。")


if __name__ == "__main__":
    current_directory = os.getcwd()  # 获取当前工作目录
    convert_ppt_to_pdf_in_directory(current_directory)  # 在当前目录中将所有 PPT 文件转换为 PDF

#pyinstaller --onefile --icon=icon.jpg ppt_to_pdf.py

可执行文件自取

使用说明:将.exe文件和需要转换的ppt文件放在同目录下点击运行等待几秒按提示操作即可

链接:https://pan.baidu.com/s/10sjUG-8xMjJJ03eXTAtPDg 
提取码:m4ns 
--来自百度网盘超级会员V3的分享

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值