共计 1739 个字符,预计需要花费 5 分钟才能阅读完成。
Python 把扫描全能王生成的图片合成 pdf_全能扫描王怎么把图片转换成 pdf, 用代码 -CSDN 博客
对前段时间写的程序进行改进。用手机扫描全能王,用图片格式分享到微信,如果是 10 来张图片以上就会自己打包成为一个 zip 文件,把这个 zip 文件复制到电脑,再用我下面这个程序,拖拉到程序的窗口就可以,将这个 zip 里面的所有图片按顺序转化为一个 pdf 文件。
# -*- coding: utf-8 -*-
"""
Created on Sun Feb 4 14:49:19 2024
@author: YBK
"""
import tkinter as tk
import windnd
from tkinter.messagebox import showinfo
from PIL import Image
import os
import glob
import time
import zipfile
# 防止字符串乱码
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
def unzip_file(zip_path, extract_to):
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_to)
# 转化图片为统一宽度
def resize_images(input_dir, output_dir, width, height):
for filename in glob.glob(os.path.join(input_dir, '*.jpg')): # 假设处理的是 jpg 图片,你可以根据需要修改文件扩展名
image = Image.open(filename)
kgb = image.width / image.height # 图片的宽高比
bzkgb = width / height # 要转化图片的宽高比
paste_w = 0 #粘贴图片在画布上的位置,以左上角为原点 初设 x 为 0
paste_h = 0 #初设 y 为 0
if kgb 1:
# print("请拖放一个文件!")
showinfo("提示","请拖放一个文件!")
else:
# print(files[0].decode('gbk'))
fileurl = files[0].decode('gbk')
# print(os.path.splitext(fileurl)[1])
if fileurl != ''and os.path.splitext(fileurl)[1] =='.zip':
zippath = fileurl
zip_file_path = zippath # 替换为你的 zip 文件路径
filename0 = os.path.basename(fileurl).replace('.zip','') + nowtime_to_str()
extract_to_path = f'e: 临时文件夹 {filename0}' # 指定解压后文件存放的目录
unzip_file(zip_file_path, extract_to_path)
# 待转换图像路径
img_path = f'e: 临时文件夹 {filename0}'
# 转换后的 pdf
pdf_path = fileurl.replace('.zip','.pdf')
# 使用示例:将 "input_directory" 目录下的所有 PNG 图片调整为宽度为 200 像素,并保存到 "output_directory" 目录中
resize_images(img_path, img_path, 1980, 2800) # 打印 A4 纸 210*297 按这个比例图片是 1980*2800
pic2pdf(img_path=img_path, pdf_path=pdf_path)
print('生成 PDF 文件位置:' + pdf_path)
if __name__ == '__main__':
rootWindow = tk.Tk()
rootWindow.title("拖放 zip 文件生成 pdf")
rootWindow.geometry("300x120")
windnd.hook_dropfiles(rootWindow , func=dragged_files)
rootWindow.mainloop()
原文地址: 拖放扫描全能王生成的图片 zip 文件,直接转化为 pdf 文件
正文完