Python实现从PPT中导出高分辨率图片

这篇文章主要为大家分享了一个实用脚本——如何利用Python实现从PPT中导出高分辨率(高 dpi)的图片,文中的示例代码讲解详细,感兴趣的可以了解一下

总结为:改注册表。

顺手写个脚本:

import tkinter as tk from tkinter import ttk import winreg from tkinter import messagebox class App(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.version_maps = { "Microsoft  365 ": "16.0", "PowerPoint 2019": "16.0", "PowerPoint 2016": "16.0", "PowerPoint 2013": "15.0", "PowerPoint 2010": "14.0", "PowerPoint 2007": "12.0", "PowerPoint 2003": "11.0", } self.center_window() self.create_widgets() def center_window(self): width = 250 height = 200 screen_width = self.master.winfo_screenwidth() screen_height = self.master.winfo_screenheight() x = (screen_width - width) // 2 y = (screen_height - height) // 2 self.master.geometry(f"{width}x{height}+{x}+{y}") self.master.title("PPT改DPI") def create_widgets(self): self.version_label = tk.Label(self, text="选择Office版本:") self.version_label.pack() self.version_var = tk.StringVar(self) self.version_var.set(list(self.version_maps.keys())[0]) self.version_combobox = ttk.Combobox( self, textvariable=self.version_var, values=list(self.version_maps.keys()), state="readonly" ) self.version_combobox.pack() self.value_label = tk.Label(self, text="输入要修改的值:") self.value_label.pack(pady=5) self.value_entry = tk.Entry(self) self.value_entry.insert(0, "96") self.value_entry.pack(pady=5) self.process_button = tk.Button(self, text="执行修改", command=self.process, width=15) self.process_button.pack(pady=5) self.quit_button = tk.Button(self, text="退出", command=self.master.destroy, width=15) self.quit_button.pack(pady=5) def process(self): version = self.version_maps.get(self.version_var.get()) input_value = int(self.value_entry.get()) # 定义注册表路径和项名 reg_path = fr"Software\Microsoft\Office\{version}\PowerPoint\Options" reg_key = "ExportBitmapResolution" try: # 打开注册表项 key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, reg_path, 0, winreg.KEY_ALL_ACCESS) except: messagebox.showerror("错误", f"注册表项不存在,请检查: {reg_path}") return try: # 尝试获取项的值 value, reg_type = winreg.QueryValueEx(key, reg_key) if reg_type == winreg.REG_DWORD: # 如果项存在且类型为DWORD32,修改它的值 winreg.SetValueEx(key, reg_key, 0, winreg.REG_DWORD, input_value) else: messagebox.showerror("失败", "注册表项类型不符合要求") except FileNotFoundError: # 如果项不存在,创建它并设置为DWORD32类型 winreg.SetValueEx(key, reg_key, 0, winreg.REG_DWORD, input_value) # 修改它的值 winreg.SetValueEx(key, reg_key, 0, winreg.REG_DWORD, input_value) messagebox.showinfo("成功 ", "修改后的值 =>" + str(winreg.QueryValueEx(key, reg_key)[0])) # 关闭注册表项 winreg.CloseKey(key) root = tk.Tk() app = App(master=root) app.mainloop()

效果图

到此这篇关于Python实现从PPT中导出高分辨率图片的文章就介绍到这了,更多相关Python PPT导出图片内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是Python实现从PPT中导出高分辨率图片的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python