如何基于pdf2image实现pdf批量转换为图片

最近为了将pdf报告解析成为文本和图片,需要将大量多页的pdf文件拆分下单独的一页一页的图像,以便后续进行OCR和图像处理,因此就需要实现将pdf2image,本文主要结合开源的pdf2image和poppler,实现了pdf转换为png格式图片的简单转换工具,供大家参考,具体步骤和应用测试示例如下。

1.安装pdf2image包

需要先安装pdf2image包,安装命令:pip3 install pdf2image

2.安装poppler用于实现pdf2image

安装poppler-windows,下载地址:https://github.com/oschwartz10612/poppler-windows/releases/tag/v23.11.0-0

3.配置环境变量

将上述压缩包解压缩之后,将路径配置到环境变量path中,如path=:D:\tools\poppler-24.08.0\Library\bin

4.修改poppler_path指向的路径

修改pdf2image包的pdf2image.py文件,将poppler路径为上述路径,具体如下。

复制代码
# pdf2image.py文件修改
def convert_from_path(
	pdf_path: Union[str, PurePath],
	output_file: Any = uuid_generator(),
	poppler_path=r'D:\tools\poppler-24.08.0\Library\bin',  # 需要修改为path中配置的poppler路径。
	grayscale: bool = False
) -> List[Image.Image]:
	...
5.测试示例代码
复制代码
import fitz  # PyMuPDF  
from pdf2image import convert_from_path  
import os,sys
def extract_fullpage_images(filename,pdf_path,output_folder):  
    # 打开PDF文件  
    doc = fitz.open(pdf_path)  
    # output_folder = "extracted_content_pdf"  
    os.makedirs(output_folder, exist_ok=True)  
    os.makedirs(output_folder + "/png-full/", exist_ok=True)  
  
    # 遍历每一页  
    for page_num in range(len(doc)):  
        page = doc.load_page(page_num)        
        # 使用pdf2image将整个页面转换为图像  
        images = convert_from_path(pdf_path, first_page=page_num + 1, last_page=page_num + 1) 
        for img_index, img in enumerate(images):  
            img.save(f"{output_folder}/png-full/page_{page_num + 1}_full_img_{img_index + 1}.png", 'PNG')  
        print(f"Processed page {page_num + 1}================================")  
    doc.close()
    
# 示例: python pdfSplitAdapterPMI.py D:\xxx\report.pdf
if __name__ == '__main__':  
    # 检查参数个数  
    argc = len(sys.argv)  
    if (argc <= 1):  
        print('missing Parameter' % locals())  
        sys.exit()  
    filepath = sys.argv[1]  
    pdf_path = filepath
    filename=filepath.split('\\')[-1][:-4]  
    output_folder = filepath[:filepath.rfind('\\')]+"\extracted_content2_"+filename  
    extract_fullpage_images(filename,pdf_path,output_folder)
6.转换结果对比

1.原始pdf文件

2.转换后每一页的图片文件列表

相关推荐
AI即插即用43 分钟前
超分辨率重建 | CVPR 2024 DarkIR:轻量级低光照图像增强与去模糊模型(代码实践)
图像处理·人工智能·深度学习·神经网络·计算机视觉·超分辨率重建
2501_907136822 小时前
电子礼簿系统-红白喜事记账工具,PDF/Execl导出
pdf·软件需求
MF_AI2 小时前
苹果病害检测识别数据集:1w+图像,5类,yolo标注
图像处理·人工智能·深度学习·yolo·计算机视觉
美狐美颜sdk4 小时前
Android直播美颜SDK:选择指南与开发方案
android·人工智能·计算机视觉·第三方美颜sdk·视频美颜sdk·人脸美型sdk
王五周八4 小时前
html转化为base64编码的pdf文件
前端·pdf·html
sali-tec4 小时前
C# 基于OpenCv的视觉工作流-章7-膨胀
图像处理·人工智能·opencv·算法·计算机视觉
努力犯错4 小时前
LTX-2 进阶 Prompt 技巧:从入门到专业视频创作
人工智能·数码相机·机器学习·计算机视觉·开源·prompt·音视频
杜子不疼.5 小时前
计算机视觉热门模型手册:Spring Boot 3.2 自动装配新机制:@AutoConfiguration 使用指南
人工智能·spring boot·计算机视觉
格林威16 小时前
传送带上运动模糊图像复原:提升动态成像清晰度的 6 个核心方案,附 OpenCV+Halcon 实战代码!
人工智能·opencv·机器学习·计算机视觉·ai·halcon·工业相机
棒棒的皮皮17 小时前
【深度学习】YOLO模型速度优化Checklist
人工智能·深度学习·yolo·计算机视觉