首页 > 编程语言 >python 实现 pdf 转为图片

python 实现 pdf 转为图片

时间:2023-08-09 20:35:39浏览次数:33  
标签:python image height num file pdf 转为 page

 1 import fitz
 2 import os
 3 from PIL import Image
 4 
 5 def convert_pdf2img(file_relative_path):
 6 
 7     page_num = 1
 8     filename = file_relative_path.split('.')[-2]
 9     if not os.path.exists(filename):
10         os.makedirs(filename)
11 
12     pdf = fitz.open(file_relative_path)
13     num_page = len(pdf)
14     print(num_page)
15     # image width , height
16     image_width = 960
17     image_height = 540
18     images = []
19 
20     for page in pdf:
21         rotate = int(0)
22         zoom_x = 2
23         zoom_y = 2
24         mat = fitz.Matrix(zoom_x,zoom_y)
25         pixmap = page.get_pixmap(matrix=mat, alpha=False)
26 
27         # image = Image.fromqpixmap(pixmap)
28         # image = Image.open(image_file)
29         # image = image.resize((image_width,image_height))
30         # images.append(image)
31         image_file = f"{filename}/{page_num}.png"
32         pixmap.pil_save(image_file)
33 
34         image = Image.open(image_file)
35         image = image.resize((image_width,image_height))
36         images.append(image)
37         print(f"第{page_num}保存图片完成")
38         page_num += 1
39 
40 
41     new_image = Image.new('RGB',(image_width,num_page*image_height))
42 
43     for index in range (0,num_page):
44     
45         start_height = index * image_height
46         print(index,start_height)
47         # new_image.paste(images[index],(0,0))
48         new_image.paste(images[index],(0,start_height))
49         # break
50 
51     new_image.save(f"{filename}.png")
52 
53 
54 if __name__ == "__main__":
55     file_relative_path = "天旰宝.pdf"
56     # file_relative_path = "精利王能量饮.pdf"
57     convert_pdf2img(file_relative_path)

图片处理库

pip install pillow

pdf处理库

pip install PyMuPDF

 

参考:https://zhuanlan.zhihu.com/p/570390414

https://blog.csdn.net/weixin_49030835/article/details/129158440

标签:python,image,height,num,file,pdf,转为,page
From: https://www.cnblogs.com/shaoyang0123/p/17617914.html

相关文章

  • oFono/dbus-python环境搭建以及简单认识
    关键词:D-Bus、oFono、dbus-python、ofonod等等。1.oFono环境搭建(Buildroot+QEMU)和启动1.1Buildroot配置ofonod+dbus-python配置oFono:Targetpackages->Networkingapplication->connman->enableofonosupport使能Python3:Targetpackages->Interpreterlanguage......
  • 【专题】2023消费电子出海白皮书报告PDF合集分享(附原数据表)
    全文链接:https://tecdat.cn/?p=33393原文出处:拓端数据部落公众号在后疫情时代,全球经济和消费力的增长面临巨大考验。2022年,电脑、手机等产品的市场规模出现了小幅收缩调整。然而,在这样的环境下,各种消费电子的细分领域却展现出了强大的韧性。阅读原文,获取专题报告合集全文,解锁文......
  • 【专题】2022年中国企业数字化学习行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32263多变,不确定性,复杂,模糊不清的新业务图景,加快了公司人才发展模式的数字化转变;疫情冲击离线运输与公司现金流量,消费者支出减少,机构表现受压,数字化学习突破;行业数字化水平不断提高,商业体系和学习体系之间的关联性不断加强,企业学情图谱不断完善; 阅......
  • Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
    全文链接:https://tecdat.cn/?p=33398原文出处:拓端数据部落公众号金融市场的股票价格时间序列分析一直以来都是投资者和研究者关注的主题之一。准确预测股票价格的趋势对于制定有效的投资策略和决策具有重要意义。因此,许多研究人员使用各种统计方法和模型来分析和预测股票价格的......
  • Python | 函数、数据容器
    1.函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段。1.1简单案例重复使用计算字符串的长度str1="heystar"str2="python"str3="abcd"count=0for_instr1:count+=1print(f"字符串{str1}的长度是:{count}")count=0for_instr2:coun......
  • Python潮流周刊#2:Rust 让 Python 再次伟大
    这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、Python修饰器的函数式编程介绍了装饰器的实现原理、带参装饰器、多装饰器、类装饰器和几个典型的示例。文章发布于2014年,代码用......
  • Python潮流周刊#5:并发一百万个任务要用多少内存?
    你好,我是猫哥。这里记录每周值得分享的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)文章&教程1、并发一百万个任务要用多少内存?(英文)文中测试了主流的编程语言(Rust、Go、Java、C#、Python、Node.js和Elixir),依次运行......
  • 软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
    在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。Python函数参数类型必传参数:最常用的,必传确定数量的参......
  • python数据分分析
    数据处理的步骤graphLR处理数据-->清洗数据目的:如何用python操作数据对象:需要的是结构化的数据工具:用到的库库名用途NumpyPandasmatplotlibJupyterNotebookScipyScikit-learnStatsmodelspython的内建数据结构;元组、列表、字典元组......
  • 解决window移植到linux shell执行Python脚本提示找不到模块问题
    1、将工程目录添加到sys.path中(测试有效importsyscpath='project_path'#写成项目的地址最好是绝对地址因为有的地方确实会报错不清楚原因sys.path.append(cpath) eg:sys_path=os.path.abspath(os.curdir)sys.path.append(sys_path.split('test_case')[0])#为了......