在Python中将PDF转换为图片,可以使用PyMuPDF
或pdfplumber
这两个库。下面是一个使用PyMuPDF
的例子:
import fitz # 这是 PyMuPDF 的别名,通过 pip install PyMuPDF 安装
from PIL import Image
def convert_pdf_to_images(pdf_path, output_folder):
doc = fitz.open(pdf_path)
for page_num in range(doc.page_count):
page = doc[page_num]
pix = page.get_pixmap() # 获取页面的像素图像
# 保存图片
img_filename = f"{output_folder}/page_{page_num + 1}.png"
pix.save(img_filename)
doc.close()
# 使用示例
convert_pdf_to_images("input.pdf", "output_images")
如果要使用pdfplumber
库进行转换,虽然它主要用于读取和分析PDF内容,但也可以实现类似的功能:
import pdfplumber
from PIL import Image
def pdf_to_images(pdf_path, output_folder):
with pdfplumber.open(pdf_path) as pdf:
for page_num, page in enumerate(pdf.pages):
image = page.to_image()
img_data = image.rgb_matrix
img = Image.fromarray(img_data)
img.save(f"{output_folder}/page_{page_num + 1}.jpg", "JPEG")
# 使用示例
pdf_to_images("input.pdf", "output_images")
请确保已安装所需的库:
pip install PyMuPDF Pillow
pip install pdfplumber
注意:pdfplumber
的转换可能不如PyMuPDF
高效且生成的图片质量可能有所不同,因为它主要是为了文本和布局解析而设计的。对于大规模高质量的图片转换,PyMuPDF
通常是更优的选择。