使用Python可以使用PyPDF2库将PDF文件转换为图片文件。
方法1:
import os
import PyPDF2
from pdf2image import convert_from_path
# 将PDF文件转换为图片
def pdf_to_image(input_path, output_path):
# 打开PDF文件
with open(input_path, "rb") as file:
pdf = PyPDF2.PdfReader(file)
# 遍历PDF的每一页
for i in range(len(pdf.pages)):
# 将页面转换为图像
images = convert_from_path(input_path, first_page=i+1, last_page=i+1)
# 保存图像文件
image_path = os.path.join(output_path, "page{}.jpg".format(i+1))
images[0].save(image_path, "JPEG")
# 指定PDF文件和输出文件夹
input_file = "path/to/input.pdf"
output_folder = "path/to/output"
# 调用函数进行转换
pdf_to_image(input_file, output_folder)
请注意,在运行此代码之前,您需要安装PyPDF2
库和pdf2image
库。您可以使用以下命令安装这两个库:
pip install PyPDF2 pdf2image
同时,还需要安装poppler
工具,以在Python中处理PDF文件:
- Windows用户可以从以下链接下载并安装
poppler
:https://blog.alivate.com.au/poppler-windows/ - Linux用户可以使用以下命令安装
poppler
:
sudo apt-get install -y poppler-utils
此代码将把每一页PDF文件转换为单独的JPEG图像文件,并将它们保存在指定的输出文件夹中。
方法2:
import fitz
def pdf_change_png(pdf_file_path):
"""
将pdf转换成图片
:param pdf_file_path: pdf文件地址
"""
jpg_name = pdf_file_path.replace("pdf", "jpg")
# 另存为pdf文件
try:
pdf_doc = fitz.open(pdf_file_path)
for pg in range(pdf_doc.page_count):
page = pdf_doc[pg]
rotate = int(0)
# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
# 此处若是不做设置,默认图片大小为:792X612, dpi=96
zoom_x = 1.33333333 # (1.33333333-->1056x816) (2-->1584x1224)
zoom_y = 1.33333333
mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
pix = page.get_pixmap(matrix=mat, alpha=False)
pix.save(jpg_name) # 将图片写入指定的文件夹内
except IOError:
raise ('pdf转png失败', pdf_file_path)