Python 图片转pdf

作者 :
免费
  • 正文
  • 代码如下:

    import os
    import tkinter as tk
    from tkinter import filedialog
    from PIL import Image, ImageTk
    from pdf2image import convert_from_path
    class ImageToPdfConverterApp:
        def __init__(self, master):
            self.master = master
            self.master.title("Image to PDF Converter")
            # 设置窗口宽度和高度
            window_width = 400
            window_height = 300
            # 获取屏幕宽度和高度
            screen_width = master.winfo_screenwidth()
            screen_height = master.winfo_screenheight()
            # 计算窗口左上角坐标使其居中
            x_position = (screen_width - window_width) // 2
            y_position = (screen_height - window_height) // 2
            # 设置窗口大小和位置
            master.geometry(f"{window_width}x{window_height}+{x_position}+{y_position}")
            # 选择图片文件夹按钮
            self.browse_button = tk.Button(master, text="选择图片文件夹", command=self.browse_folder)
            self.browse_button.pack(pady=10)
            # 显示选择的图片文件夹路径
            self.folder_label = tk.Label(master, text="选择的图片文件夹: ")
            self.folder_label.pack()
            # 转换按钮
            self.convert_button = tk.Button(master, text="转换为PDF", command=self.convert_and_save)
            self.convert_button.pack(pady=10)
            # 显示转换结果
            self.result_label = tk.Label(master, text="")
            self.result_label.pack()
            # 在窗口底部添加 "Development by 都百顺" 横向居中显示
            self.developer_label = tk.Label(master, text="Development by 都百顺(抖音号:dubaishun12)")
            self.developer_label.pack(side="bottom", pady=20)
        def browse_folder(self):
            global folder_path
            folder_path = filedialog.askdirectory(title="选择图片文件夹")
            self.folder_label.config(text=f"选择的图片文件夹: {folder_path}")
        def convert_and_save(self):
            if folder_path:
                # 调用转换函数
                pdf_file_path = self.convert_images_to_pdf(folder_path)
                # 获取PDF文件名
                pdf_file_name = os.path.basename(pdf_file_path)
                # 显示转换结果(只显示PDF文件名)
                self.result_label.config(text=f"转换完成,生成的PDF文件:{pdf_file_name}")
                # 显示PDF
                self.show_pdf(pdf_file_path)
            else:
                self.result_label.config(text="请先选择图片文件夹")
        def convert_images_to_pdf(self, folder_path):
            # 获取文件夹名(作为PDF文件名)
            pdf_file_name = os.path.basename(folder_path)
            pdf_file_path = os.path.join(os.path.dirname(__file__), f"{pdf_file_name}.pdf")
            # 获取文件夹中的图片文件列表
            image_files = [f for f in os.listdir(folder_path) if f.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp'))]
            # 创建一个PDF文件,并将图片添加到PDF中
            images = [Image.open(os.path.join(folder_path, img)) for img in image_files]
            images[0].save(pdf_file_path, save_all=True, append_images=images[1:])
            return pdf_file_path
        def show_pdf(self, pdf_file_path):
            # Convert PDF to images
            images = convert_from_path(pdf_file_path)
            # Display images in Tkinter
            for img in images:
                img_tk = ImageTk.PhotoImage(img)
                panel = tk.Label(self.master, image=img_tk)
                panel.image = img_tk
                panel.pack()
    if __name__ == "__main__":
        root = tk.Tk()
        app = ImageToPdfConverterApp(root)
        root.mainloop()

    先安装

    pip install pillow
    pip install pdf2image
    pip install tk
    
    

    Python 图片转pdf-完美源码

    END
    如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。 本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用! Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售! Wmphp.com(完美源码)客服QQ:136882447 Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步) 请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
    完美源码 » Python 图片转pdf
    3553+

    本站勉强运行

    3967+

    用户总数

    692+

    资源总数

    0+

    今日更新

    2024-5-13

    最后更新时间