本帖最后由 knx888 于 2024-8-11 22:46 编辑
如下代码,请前辈指点
[Python] 纯文本查看 复制代码 import fitz # PyMuPDF
from PIL import Image
def convert_pdf_to_images(pdf_path, resolution):
# 打开 PDF 文件
pdf_document = fitz.open(pdf_path)
# 存储所有转换后的图片
images = []
# 遍历 PDF 中的每一页
for page_number in range(len(pdf_document)):
page = pdf_document[page_number]
# 获取页面的原始大小(以点为单位)
zoom_x = resolution / page.rect.width
zoom_y = resolution / page.rect.height
# 将 PDF 页面转换为图片
pix = page.get_pixmap(matrix=mat)
# 使用 PIL 的 Image 对象打开图片
image = image = Image.frombytes("RGB", (pix.width, pix.height), pix.samples)
# 将图片添加到列表中
images.append(image)
# 合并所有图片
total_height = sum(image.size[1] for image in images)
combined_image = Image.new('RGB', (images[0].size[0], total_height))
current_height = 0
for image in images:
combined_image.paste(image, (0, current_height))
current_height += image.size[1]
# 关闭 PDF 文件
pdf_document.close()
return combined_image
combined_image = convert_pdf_to_images(r"F:\pdf处理\处理.pdf", resolution=3396)
# 保存合并后的图片
combined_image.save(r"F:\pdf处理\处理.png") |