软件测试|教你用Python处理PDF文件(三)

简介: 软件测试|教你用Python处理PDF文件(三)

image.png

前言

我们之前介绍了提取PDF文件中的文字内容,我们使用PyPDF2即可实现操作,但是如果PDF文件有图片的话,只提取文本的话无法把图片的内容一起提取出来,我们需要另外的脚本来实现对图片的提取。

环境准备

对于抽取PDF中的图片,我们使用的还是PyPDF2这个库,安装命令如下:

pip install PyPDF2

我们还是使用之前使用的过的,test2.pdf来用做例子。

使用实例

我们提取PDF文件中的图片的代码如下:

import PyPDF2
from PIL import Image


def extract_images_from_pdf(pdf_path, output_folder):
    pdf_file = open(pdf_path, 'rb')
    pdf_reader = PyPDF2.PdfReader(pdf_file)

    image_count = 0
    for page_number in range(len(pdf_reader.pages)):
        page = pdf_reader.pages[page_number]
        if '/XObject' in page['/Resources']:
            x_objects = page['/Resources']['/XObject'].get_object()
            for obj in x_objects:
                if x_objects[obj]['/Subtype'] == '/Image':
                    image = x_objects[obj]
                    if '/Filter' in image:
                        if image['/Filter'] == '/DCTDecode':
                            image_ext = 'jpg'
                        elif image['/Filter'] == '/JPXDecode':
                            image_ext = 'jp2'
                        else:
                            image_ext = 'png'
                    else:
                        image_ext = 'png'

                    image_data = image._data
                    image_name = f'image_{image_count}.{image_ext}'
                    image_path = f'{output_folder}/{image_name}'

                    with open(image_path, 'wb') as img_file:
                        img_file.write(image_data)

                    print(f'Saved image: {image_path}')
                    image_count += 1

    pdf_file.close()


# 使用示例
pdf_path = 'files/test2.pdf'  # PDF文件路径
output_folder = 'files'  # 图片输出的文件夹路径

extract_images_from_pdf(pdf_path, output_folder)

运行脚本,发现files文件夹新增了两个jpg文件,如下:

image.png

图片如下:

image.png

总结

本文主要介绍了使用PyPDF2库实现对PDF文件中的图片进行提取的操作,后续我们将介绍提取PDF文件中的表格内容。

相关文章
|
3月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1128 2
|
4月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
235 0
|
2月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
3月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
127 4
|
3月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
872 0
|
4月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
205 8
1行Python代码,实现PDF的加密、解密
|
5月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
737 40
|
4月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
177 0
|
5月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
5月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。

推荐镜像

更多