当前位置: 首页 > news >正文

兰州企业建设网站学校安全教育网站建设

兰州企业建设网站,学校安全教育网站建设,国家商标局,网站建设属于哪种职位语言:python 3 用法:点击运行后,弹出窗口,选择文件夹,程序运行会将文件夹内的所有PPT文件全部转换成PPT长图,图片名称与PPT文件名称相同,保存位置相同。 如运行中报错,需要自行根据…

语言:python 3

用法:点击运行后,弹出窗口,选择文件夹,程序运行会将文件夹内的所有PPT文件全部转换成PPT长图,图片名称与PPT文件名称相同,保存位置相同。

如运行中报错,需要自行根据报错内容按照缺失的库

共分享两种代码,可以尝试运行。

代码1,需安装库

#安装库
pip install pyautogui
#安装库
pip install  pillow


import os
import comtypes.client
from tkinter import Tk, filedialog
from PIL import Imagedef ppt_to_images(ppt_file):try:# 导入comtypes.client模块并创建PowerPoint应用程序对象powerpoint = comtypes.client.CreateObject("Powerpoint.Application")# 设置PowerPoint应用程序为可见状态,便于观察操作过程(可选),修改为0后报错#powerpoint.Visible = 1# 打开PPT文件,并返回Presentation对象presentation = powerpoint.Presentations.Open(ppt_file)for i, slide in enumerate(presentation.slides):      #slide是幻灯片序列slide.Export(f"slide_{i}.png", "PNG")# 关闭PPT文件presentation.Close()# 退出PowerPoint应用程序powerpoint.Quit()presentation = Noneprint(ppt_file+"分图完成!")except Exception as e:print("分图时发生错误:", str(e))
def merge_images(directory, png_file):try:Image.MAX_IMAGE_PIXELS = 2 ** 40images = []  # 存储图片对象for file in os.listdir(directory):file_path = os.path.join(directory, file)if os.path.isfile(file_path) and file.lower().endswith(".png"):image = Image.open(file_path)images.append(image)if len(images) == 0:print("未找到PNG格式的图片文件")return Nonemax_width = max(image.size[0] for image in images)  # 获取最大宽度total_height = sum(image.size[1] for image in images)  # 计算总高度final_image = Image.new("RGBA", (max_width, total_height), (0, 0, 0, 0))  # 创建最终图像# 逐个粘贴图片到最终图像中y_offset = 0for image in images:final_image.paste(image, (0, y_offset))y_offset += image.size[1]final_image.save(png_file)print("已生成图片"+png_file)if final_image:for file in os.listdir(directory):file_path = os.path.join(directory, file)if os.path.isfile(file_path) and file.lower().endswith(".png") and "slide" in file:os.remove(file_path)print("已删除图片"+file)except Exception as e:print("合并图片时发生错误:", str(e))def select_directory():try:root = Tk()root.withdraw()directory = filedialog.askdirectory(title="选择目录")ppt_files = [f for f in os.listdir(directory) if f.endswith('.pptx')or f.endswith('.ppt')]for ppt_file in ppt_files:try:#print("directory" + directory)if ppt_file.lower().endswith(".pptx"):png_file = os.path.join(directory, ppt_file[:-5] + ".png")ppt_to_images(ppt_file)  # PPT to imagemerge_images(directory, png_file)  # image to imageselif ppt_file.lower().endswith(".ppt"):png_file = os.path.join(directory, ppt_file[:-4] + ".png")ppt_to_images(ppt_file)  # PPT to imagemerge_images(directory, png_file)  # image to imagesexcept Exception as e:print("处理PPT文件时发生错误,跳过该文件:", str(e))print("转换完成!")except Exception as e:print("选择目录并转换PPT文件时发生错误:", str(e))# 选择目录并转换PPT到PDF格式,再将PDF转换为长图
select_directory()

代码2如下:

import os
import comtypes.client
from tkinter import Tk, filedialog
from pptx import Presentation
from PIL import Image#PPT转换成图片def ppt_to_images(ppt_file, png_file):#presentation = powerpoint.Presentations.Open(ppt_file)presentation = Presentation(os.path.join(png_file, ppt_file))for i, slide in enumerate(presentation.slides):      #slide是幻灯片序列slide.export(f"{png_file}/slide_{i}.png")     #将PPT转换成图片并保存到目录下print("PPT转换为图像完成!")#将图片拼接成长图
def merge_images(ppt_path, output_file):images = [Image.open(f"{ppt_path}/{img}") for img in os.listdir(ppt_path) if img.endswith(".png")]widths, heights = zip(*(img.size for img in images))total_height = sum(heights)max_width = max(widths)merged_image = Image.new("RGB", (max_width, total_height))y_offset = 0for img in images:merged_image.paste(img, (0, y_offset))y_offset += img.size[1]merged_image.save(output_file)print("图像拼接完成!")def ppt_to_pdf(ppt_path, pdf_file):   #ppt路径和pdf的路径# 导入comtypes.client模块并创建PowerPoint应用程序对象powerpoint = comtypes.client.CreateObject("Powerpoint.Application")# 设置PowerPoint应用程序为可见状态,便于观察操作过程(可选),修改为0后报错powerpoint.Visible = 1# 打开PPT文件,并返回Presentation对象presentation = powerpoint.Presentations.Open(ppt_path)# 将打开的PPT文件导出为PDF文件(第二个参数2表示导出为PDF格式)presentation.ExportAsFixedFormat(pdf_file, 2)# 输出转换完成的信息print(ppt_path + "转PDF完成!")def select_directory():root = Tk()root.withdraw()directory = filedialog.askdirectory(title="选择目录")ppt_files = [f for f in os.listdir(directory) if f.endswith('.pptx')]for ppt_file in ppt_files:ppt_path = os.path.join(directory, ppt_file)       #ppt_path ppt的路径,拼接pptpdf_file = os.path.join(directory, ppt_file[:-4] + ".pdf")    #pdf文件png_file= os.path.join(directory, ppt_file[:-4] + ".png")ppt_to_pdf(ppt_path, pdf_file)print("转换完成!")# 选择目录并转换PPT到PDF格式,再将PDF转换为长图
select_directory()

http://www.yayakq.cn/news/404097/

相关文章:

  • 做网站建设的平台电商外贸平台有哪些
  • 杭州公司的网站建设公司北京朝阳做网站
  • 厦门在线制作网站中国十大建筑设计公司排名
  • 阿里云多网站国内网站建设 必须实名认证
  • 中国住房建设部网站南宁外贸网站建设功能公司
  • 广东省网站备案免费零食网站模板
  • 推广型网站开发软件怎么看网站是否备案成功
  • 怎么做网站编程培训班
  • 衡阳做网站ss0734淘客网站难做吗
  • 怎么做监控直播网站做网站大概价格
  • 建设厅网站给领导留言如何查看螺蛳粉的软文推广
  • 三门峡市建设项目备案网站网站开发维护前景
  • 旅游村庄网站建设方案宣传册
  • 广西医科大学网站建设2024年个体工商户年报怎么填
  • o2o典型代表网站用插件做网站
  • 网站建筑设计最新新闻热点国家大事
  • 兰州城建设计院网站seo代码优化包括哪些
  • 门户网站特点怎样做才能让百度前两页有自己网站内容
  • 什么网站都能进的浏览器收录好的博客网站吗
  • 林业厅网站建设方案百度推广后台登陆首页
  • 个人asp网站模板下载哪里有专业网站建设公司
  • 毕业网站建设ppt支部品牌建设实施方案
  • 免费建网站系统临邑云速网站建设
  • 自己建网站卖东西网站设计素材图片
  • 如何制作自己网站深圳网页制作案例
  • 邢台做移动网站对电子商务网站建设和管理的理解
  • 网站建设龙岗用自己的身份做网站备案
  • 成片1卡2卡三卡4卡网站按天扣费优化推广
  • 做网站前应该先出图桂城网站建设制作
  • 北京SEO网站优化公司seo怎么做排名