吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 201|回复: 0
收起左侧

[Windows] 道·吧转换PDF

[复制链接]
lvhaiqiang 发表于 2024-11-16 15:29

使用DP进行下载 道·巴·转换PDF

小白作品不习勿喷 欢迎优化

from DrissionPage import Chromium
from PIL import Image
import time
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

url_img = input('请输入图片地址:')
# 创建一个Chromium实例
chromium = Chromium()
tab = chromium.latest_tab
tab.get(url_img)
delete_tool = tab.ele('#toolbar')
tab.remove_ele(delete_tool)

continueButton = tab.ele('#continueButton')
if continueButton:
    continueButton.click()

# 获取元素并截图
element_name_list = []
page_elements = tab.eles('#^outer_page')
print(page_elements)
for img in page_elements:
    element_id = img.attrs
    element_name_list.append(element_id['id'] + '.png')
    time.sleep(1)
    element_name = element_id['id']
    time.sleep(1)
    img_png = tab.ele(f'#{element_name}')
    time.sleep(3)
    img_png.get_screenshot()
    img.get_screenshot(path=None, name=f'{element_name}.png')
    print(f'{element_name} 已保存。')

print(element_name_list)
pdf_filename = 'a.pdf'
c = canvas.Canvas(pdf_filename, pagesize=letter)
width, height = letter
for png_file in element_name_list:
    # 打开 PNG 图片
    img = Image.open(png_file)

    # 获取图片的宽度和高度
    img_width, img_height = img.size

    # 按比例调整图片大小以适应 PDF 页面
    ratio = min(width / img_width, height / img_height)
    new_width = img_width * ratio
    new_height = img_height * ratio

    # 计算图片在 PDF 页面的位置
    x = (width - new_width) / 2
    y = (height - new_height) / 2

    # 将图片添加到 PDF
    c.drawImage(png_file, x, y, width=new_width, height=new_height)

    # 如果还有更多图片,则创建新页面
    if png_file != element_name_list[-1]:
        c.showPage()
c.save()


https://wwbu.lanzouq.com/iGhrm2f87kle

实测

1

1



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 03:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表