python——ppt文件转成pdf文件

一、ppt文件转成pdf文件

需要的库pypiwin32
安装命令: pip install pypiwin32

代码为:

python 复制代码
import os
import glob
from win32com.client import gencache
def GetFilePath():
    #obtain the path of all ppt/pptx files in this directory
    # filePath=os.path.split(os.path.abspath(__file__))[0] #这里是获取当前文件路径下的所有ppt文件
    filePath='D:\\11' # 需要把PPT文件放到D盘的11文件夹里
    pptFiles=glob.glob(os.path.join(filePath,"*.ppt*"))
    #print(pptFiles)
    return filePath,pptFiles 

def pptToPDF(filename,new_directory):
    #Example Initialize a PowerPoint application instance
    pdfName=os.path.basename(filename).split('.ppt')[0]+'.pdf'
    savePathFile=os.path.join(new_directory,pdfName)
    if os.path.isfile(savePathFile): #judge if the str savePathFile is a file existed
        print(pdfName,"converted already")
        return
    p=gencache.EnsureDispatch("PowerPoint.Application")# guessing that has some connections with open the PowerPoint Application
    try:
        ppt=p.Presentations.Open(filename,False,False,False)#open the PowerPoint file 
    except Exception as e:
        print(os.path.split(filename)[1],"File format conversion failed,because %s" %e)  #throw 
    ppt.ExportAsFixedFormat(savePathFile,2,PrintRange=None)
    print("converted && saved :", savePathFile)
    p.Quit     #close the PowerPoint file       

def main():
    filePath,pptFlies=GetFilePath();#PPT文件所在目录和所有ppt文件目录的列表
    NewDirectory=os.path.join(filePath,"converted_directory")
    #生成PDF文件的存储路径
    if not os.path.exists(NewDirectory):
        os.mkdir(os.path.join(NewDirectory))#crate the directory if it not exits
    for each in pptFlies:
        pptToPDF(each,NewDirectory)

if __name__ =="__main__":
    main()  
    print("程序已经执行完成!")
    inp = input("请按回车键退出程序。")

把ppt文件放到D盘的11文件夹里,然后运行程序即可

打包好的exe文件可以到这里下载:https://download.csdn.net/download/wy313622821/89602307

二、pdf文件转成ppt文件

python 复制代码
# 需要导入的库:pip install pdf2pptx     pip install PyPDF2
import pdf2pptx
import PyPDF2

# 获取pdf文档有多少页
def get_pdf_page_count(pdf_path):
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfReader(file)
        return len(reader.pages)

def convert_pdf_to_pptx(pdf_file_path, pptx_file_path):
    page_count = get_pdf_page_count(pdf_file_path)
    pdf2pptx.convert_pdf2pptx(pdf_file_path,pptx_file_path,300,0,page_count)

if __name__ =="__main__":
    # 指定输入的PDF文件路径和输出的PPT文件路径
    pdf_file = "D:\\11\\22.pdf"
    pptx_file = "D:\\11\\22.pptx"

    # 调用函数,传入PDF文件路径和PPT文件路径
    convert_pdf_to_pptx(pdf_file, pptx_file)  

    
    print("程序已经执行完成!")
    inp = input("请按回车键退出程序。")

打包好的exe文件可以到这里下载:

相关推荐
lqqjuly1 分钟前
Matlab2025a实现双目相机标定~业余版
开发语言·matlab·相机标定·双目相机
Brianna Home6 分钟前
现代C++:从性能泥潭到AI基石
开发语言·c++·算法
_深巷的猫12 分钟前
python爬虫自动库DrissionPage保存网页快照mhtml/pdf/全局截图/打印机另存pdf
pdf
2301_7965125217 分钟前
Rust编程学习 - 自动解引用的用处,如何进行“解引用”(Deref) 是“取引用”(Ref) 的反操作
开发语言·学习·rust
qq192572302721 分钟前
c++特性
开发语言·c++·算法
weixin_3077791325 分钟前
AWS Elastic Beanstalk 实现 Java 应用高可用部署指南
java·开发语言·云计算·aws·web app
Naiva26 分钟前
【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6
vscode·python·pycharm
nvd1139 分钟前
asyncio.run() vs asyncio.gather():启动器与聚合器, 为何Jupyter notebook里能直接使用await?
开发语言·python·jupyter
EEG小佬1 小时前
Jupyter选择内核时如何找到虚拟环境
ide·python·jupyter
文人sec1 小时前
使用python-pandas-openpyxl编写运营查询小工具
开发语言·python·pandas