里程碑v3

This commit is contained in:
vincent 2023-07-21 16:16:52 +08:00
parent 9cab9ac777
commit 1818833cc5

33
main.py
View File

@ -8,7 +8,6 @@ from PIL import Image
import io
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from utils import ArrayUtil
def get_html(url, max_retries=3):
@ -97,34 +96,6 @@ def save_images_to_directory(img_obj_list, directory_path):
print(f"图片保存失败:{e}")
def generate_pdf_from_images(img_obj_list, output_file):
try:
c = canvas.Canvas(output_file, pagesize=letter)
for img_obj in img_obj_list:
# 从图片对象的 data 字段中创建图像对象
img_data = img_obj["data"]
img = Image.open(io.BytesIO(img_data))
# 将图像大小调整为 PDF 页面大小
img_width, img_height = img.size
pdf_width, pdf_height = letter
scale = min(pdf_width / img_width, pdf_height / img_height)
new_width, new_height = int(img_width * scale), int(img_height * scale)
img = img.resize((new_width, new_height), Image.ANTIALIAS)
# 将图像添加到 PDF 页面中
c.drawInlineImage(img, 0, 0, width=new_width, height=new_height)
# 创建新的页面
c.showPage()
c.save()
print("PDF 生成成功!")
except Exception as e:
print(f"PDF 生成失败:{e}")
def concatenate_images_vertically(img_obj_list, output_file):
try:
# 计算拼接后的长图宽度和总高度
@ -148,7 +119,7 @@ def concatenate_images_vertically(img_obj_list, output_file):
y_offset += img_height
# 保存拼接后的长图到本地
# long_image.save(output_file)
long_image.save(output_file)
except Exception as e:
@ -173,7 +144,7 @@ def process_batch(lines):
# save_images_to_directory(img_obj_list, directory_path="imgs")
concatenate_images_vertically(
img_obj_list, output_file=f"imgs/{file_name}.pdf"
img_obj_list, output_file=f"imgs/{file_name}.png"
)