Python自动滚动屏幕并截屏+图片合成为PDF

参考攻略:
使用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实现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值