python批量从pdf中转换图片保存

本文介绍了一种使用Python脚本批量将PDF文件转换为图片的方法。通过调整参数zoom_x和zoom_y来提高输出图片的清晰度,适用于财务报告等文档的OCR前处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做项目,需要对公司财报做OCR,首先数据集,就得从财报pdf中截取图片了。

import datetime
import random
import os

import fitz  # fitz就是pip install PyMuPDF

def pyMuPDF_fitz(pdfPath, imagePath,i):  # PDF路径 保存图片路径 PDF编号
    startTime_pdf2img = datetime.datetime.now()  # 开始时间

    # print("imagePath=" + imagePath)
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = random.uniform(-0.8,0.8) # 页面旋转随机角度
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        # zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
        # zoom_y = 1.33333333
        zoom_x = 5 # 修改该参数可以改变像素
        zoom_y = 5
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)

        if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建

        pix.writePNG(imagePath + '/' + 'image{}_{}.png'.format(i,pg))  # 将图片写入指定的文件夹内
                                                       # 第i张pdf的第pg页

    endTime_pdf2img = datetime.datetime.now()  # 结束时间
    # print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)


if __name__ == "__main__":
    path = r'.\pdf' # 路径
    n = len(os.listdir(path))
    print('共有{}张PDF'.format(n))
    i=1
    for filename in os.listdir(path):
        # 1、PDF地址
        pdfPath = path+'/'+filename
        # 2、需要储存图片的目录
        imagePath = './imgs'
        pyMuPDF_fitz(pdfPath, imagePath,i)
        print('已处理{}张PDF,剩余{}张PDF'.format(i,(n-i)))
        i=i+1

缺什么库自行安装。调大zoom_x 和zoom_y 可以提高图片清晰度。

该程序功能,是将放在.\pdf路径文件夹下的所有pdf文件,每页都转成一张图片,保存在./imgs文件夹下。
在这里插入图片描述

程序是冯佬写的,这里容小弟膜拜一下。

<think>好的,我现在需要帮助用户将文本文件转换为JPG图片格式。首先,我得想想用户的需求是什么。他们可能有一个文本文件,比如TXT、DOCX或者其他格式,想要转换图片,可能是为了分享方便,或者防止被编辑,或者用于上传到某些只接受图片的平台。 接下来,我得考虑有哪些方法可以实现这个转换。根据用户提供的引用内容,虽然引用的信息主要是关于图片格式转换(比如JFIF转JPG或BMP转JPG),但用户的问题是关于文本转JPG,所以可能需要不同的方法。不过,引用中的信息提到了批量处理和无需工具的方法,这可能对用户有帮助,但需要调整思路。 首先,用户可能需要手动的方法,比如使用截图工具。例如,在Windows上,可以用Snipping Tool或者Snip & Sketch来截取文本编辑器的内容,然后保存为JPG。这个方法简单,但可能不适合大量文件,或者需要精确控制格式的情况。 其次,用户可能需要使用软件内置的导出功能。比如,Microsoft Word可以将文档另存为图片格式,或者导出为PDF后再转成图片。但用户可能没有安装Word,或者需要更直接的转换方式。 第三种方法是使用在线转换工具。比如,一些网站允许上传文本文件并转换图片。但用户需要注意隐私问题,特别是处理敏感内容时,不建议使用在线工具。 第四种方法是使用脚本或编程实现自动化。比如,用Python的Pillow库创建图片,将文本绘制到图像上。这对有编程基础的用户来说是个好方法,可以批量处理,但可能需要一定的学习成本。 用户可能还需要调整图片的分辨率、背景颜色、字体大小等,这些在转换过程中需要考虑。另外,确保转换后的JPG图片清晰可读是关键,特别是处理长文本时,自动换行和布局可能是个挑战。 根据引用中的信息,用户之前可能处理过图片格式转换,现在转向文本转图片,可能需要类似的批量处理方法。但现有的引用内容提到的工具主要是图片图片转换,所以需要寻找新的方法。 可能还需要提到使用虚拟打印机,比如将文本打印成PDF,然后导出为JPG,但这可能需要多个步骤。或者使用像LibreOffice这样的免费软件,将文本文件导入并导出为图片格式。 总结一下,可能的解决方案包括截图工具、办公软件导出、在线转换工具、编程脚本、虚拟打印机等。需要评估每种方法的优缺点,比如便捷性、处理速度、是否需要安装软件、是否支持批量处理等。 现在,需要将这些方法整理成步骤,用中文清晰表达,并确保符合用户的引用格式要求。同时,生成相关问题,帮助用户深入理解。</think>### 如何将文本文件转换为JPG图片格式? #### 方法1:使用截图工具(手动转换) 1. **打开文本文件**:用记事本、Word或其他文本编辑器打开文件。 2. **调整显示内容**:确保文本在屏幕上完整显示,调整窗口大小或缩放比例。 3. **截图并保存为JPG**: - Windows:使用`Snipping Tool`或快捷键`Win+Shift+S`截图,保存时选择`.jpg`格式[^1]。 - macOS:使用`Command+Shift+4`区域截图,默认保存为`.png`,可通过“预览”转换为`.jpg`。 #### 方法2:利用办公软件导出为图片 1. **在Word中操作**: - 将文本粘贴到Word中,调整格式后点击`文件 > 另存为`,选择保存类型为`网页(.htm)`。 - 生成的文件夹中包含图片格式的文本片段,需手动提取。 2. **通过PDF中转**: - 将文本保存PDF(如使用虚拟打印机),再用PDF阅读器(如Adobe Acrobat)导出为JPG。 #### 方法3:在线转换工具(适用于短文本) 1. **访问在线工具**:如[Convertio](https://convertio.co/zh/txt-jpg/)、[OnlineConvertFree](https://www.onlineconvertfree.com/zh/)。 2. **上传文件并转换**: - 上传文本文件,选择输出格式为`.jpg`,下载转换后的图片[^2]。 - **注意**:敏感内容不建议使用此方法。 #### 方法4:编程实现批量转换(以Python为例) ```python from PIL import Image, ImageDraw, ImageFont text = open("input.txt").read() image = Image.new("RGB", (800, 600), color="white") draw = ImageDraw.Draw(image) font = ImageFont.truetype("arial.ttf", 15) # 自动换行处理 lines, line = [], "" for word in text.split(): if draw.textlength(line + " " + word, font=font) < 780: line += " " + word else: lines.append(line.strip()) line = word lines.append(line.strip()) # 绘制文本 y = 10 for line in lines: draw.text((10, y), line, font=font, fill="black") y += 20 image.save("output.jpg") ``` **说明**:需安装`Pillow`库,支持自定义字体、背景色和自动换行[^3]。 #### 方法5:使用专业软件批量处理(推荐) 1. **Total PDF Converter**:支持将文本文件先转PDF批量转JPG。 2. **XnConvert**:通过导入文本生成图片,支持批量处理和多格式输出。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值