PDF转Images

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: PDF转Images

背景

最近在做图片相关的项目,有个需求要求同时支持PDF和图片,那么很直观的思路的把PDF文档转换为 List<image> 来适配统一的处理策略。
所以本教程是介绍如何使用 Python 语言将 PDF 文档转换为 List<image>

环境以及依赖package

NStudyPy==0.0.5 NStudyPy 工具包 , 一个有用的工具包,可以简化开发流程,详细介绍可以参考 NStudyPy
由于NStudyPy依赖于pdf2image <=1.17.0pdf2image又依赖 poppler, poppler安装请参考 poppler
本教程使用 python 3.10.13 作为开发环境 , 原则上适用于 python 3.9+
本教程开发环境为 windows 10 ,原则上其他系统应该也可以 , 但请注意需要安装对应环境的 poppler, 同时需注意配置 环境变量, 环境变量配置请参阅本站其他文档

!!本站支持全文搜索。

主要流程

  1. 创建项目,安装依赖
pip install NStudyPy==0.0.5
  1. 调用方法
def test_pdf():
    for image in PyPDF.convert_images(r'1.pdf', ImageFormat.PIL):
        if isinstance(image, Image):
            print(image.format, image.mode)
        else:
            print(image.shape)

说明

  • pdf_path: pdf文件路径
  • image_format: 图片格式, 默认为 ImageFormat.OPENCV , 同时支持返回 ImageFormat.PIL格式
  1. 核心源码
    def convert_images(pdf_path: str, image_format: ImageFormat = ImageFormat.OPENCV) -> List[object]:
     """
     Convert pdf to images
     :param image_format: ImageFormat
     :param pdf_path:
     :return: List[Image.Image] or List[cv2.typing.MatLike]
     """
     images = convert_from_path(pdf_path)
     if image_format == ImageFormat.OPENCV:
         new_images = []
         for image in images:
             opencv_image = np.array(image)
             if opencv_image.shape[2] == 3:
                 opencv_image = cv2.cvtColor(opencv_image, cv2.COLOR_RGB2BGR)
             new_images.append(opencv_image)
         return new_images
     return images
    
目录
相关文章
|
JavaScript 前端开发 HTML5
PDF转图片,PDF转JPG/PNG,完全由JS实现
原理 使用pdf.js预览图片,pdf.js将pdf通过canvas将每一页渲染出来,然后我们通过canvas的toDataURL方法保存为jpg或png格式。pdf.js是Mozilla开源的一个js库,无需任何本地支持就可以在浏览器上显示pdf文档。
14444 1
|
7月前
jpg、png、gif 的区别是什么?如何进行选择?
jpg、png、gif 的区别是什么?如何进行选择?
26 0
|
7月前
jpg、png、gif 的区别是什么?如何进行选择
jpg、png、gif 的区别是什么?如何进行选择
31 0
|
XML C# 数据格式
C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)
一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的。在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能为各位开发者们提供一定的参考价值。
1793 0
|
C# 开发者 图形学
C# 如何将PDF转为多种图像文件格式(Png/Bmp/Emf/Tiff)
PDF是一种在我们日常工作学习中最常用到的文档格式之一,但常常也会因为文档的不易编辑的特点,在遇到需要编辑PDF文档内容或者转换文件格式的情况时让人苦恼。通常对于开发者而言,可选择通过使用组件的方式来实现PDF文档的编辑或者格式转换,因此本文将介绍如何通过使用免费版的组件Free Spire.PDF for .NET来转换PDF文档。
1584 0
|
存储 算法 图形学
关于图片的PNG与JPG、JIF格式
关于图片的PNG与JPG、JIF格式
1220 0