参考攻略:
使用Python把一堆图片排序后转换成PDF,最终得到一人之下漫画pdf
Python自动控制鼠标中键滚动并截屏保存图像
from time import sleep
from os import mkdir
from os.path import exists
from win32api import mouse_event
from win32con import MOUSEEVENTF_WHEEL
from PIL.ImageGrab import grab
import os
import re
from PIL import Image
def open_file_url(path):
# os.listdir 会得到目录下的文件名列表
file_name_list = os.listdir(path)
# print(file_name_list)
# 得到的文件名列表的顺序有点不符合预期, 所以要先进行一下排序
# re.findall(r"\d+")会根据正则在指定字符串内查找全部的数字,返回一个列表, "\d+" 表示查找数字
# 根据文件名的特征取出最后一个数字进行排序即可
file_name_list.sort(key=lambda x: int(re.findall(r"\d+", x)[-1]))
image_list = [] # 创建一个列表把通过 Image 打开的图片放入
pdf_poster = Image.open(path + "\\" + file_name_list[0]) # 打开第一张图片,这个图片可以看成生成PDF的封面
file_name_list.pop(0) # 为防止重复图片
for file_name in file_name_list:
# path 是传进来的文件夹路径, 所以在拼接上图片的名字就是文件夹下图片的完整路径
# print(file_name)
img_url = path + "\\" + file_name
print(img_url)
imgfile = Image.open(img_url)
image_list.append(imgfile)
pdf_poster.save("./输出论文.pdf", 'pdf', save_all=True, append_images=image_list)
directory = 'captured_picture'
if not exists(directory):
mkdir(directory)
print('3s后滚动截图')
sleep(3)
for i in range(113):
grab((850,128,1700,1280)).save(rf'{directory}\ttt{i}.jpg')
mouse_event(MOUSEEVENTF_WHEEL,0,0,-300)
sleep(2)
if __name__ == '__main__':
open_file_url(r"captured_picture")
说明:
1、grab函数中间四参数分别为截屏框的左上角坐标点和右下角坐标点,就相当于截屏的起点和终点
2、本例子用Pycharm实现