PDF按页拆分为PDF单页或者图片
import base64
import sys
import PyPDF2
import fitz, os, datetimedef pdf_split(file_path, out_dir):"""单个pdf按页拆分pdf@param file_path: 源文件路径(绝对路径)@param out_dir: 输出pdf目录文件夹(绝对)@return: 输出文件目录文件夹(绝对)"""pdf_file = open(file_path, 'rb') # 获取原 PDF 文件pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 创建 PDF 对象source_name = pdf_file.name # 获取源文件名称,包含绝对路径print("source_name", source_name)output_dir = r"{}\{}".format(out_dir,source_name.split("\\")[-1].split(".")[0])print("output_dir", output_dir)if not os.path.exists(output_dir):os.makedirs(output_dir)pdf_writer = PyPDF2.PdfFileWriter() # 创建一个空白 PDF 对象for page_num in range(pdf_reader.numPages): # 将每页内容分别写入一个新文件page_obj = pdf_reader.getPage(page_num)pdf_writer.addPage(page_obj) # 向空白 PDF 对象中添加要复制的 PDF页面new_name = "{}\{}.pdf".format(output_dir, str(page_num))# print("new_name", new_name)pdf_new_file = open(new_name, 'wb') # 创建一个新文件pdf_writer.write(pdf_new_file) # 将添加了内容的空白 PDF 对象,写入到新建文件中pdf_new_file.close()pdf_writer.__init__() # 将 PDF 对象初始化pdf_file.close()return output_dirdef pyMuPDF_fitz(pdfPath, imagePath):"""单个pdf按页拆分为图片"""startTime_pdf2img = datetime.datetime.now()#开始时间print("imagePath="+imagePath)pdfDoc = fitz.open(pdfPath)for pg in range(pdfDoc.pageCount):page = pdfDoc[pg]rotate = int(0)# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。# 此处若是不做设置,默认图片大小为:792X612, dpi=96zoom_x = 1.33333333 #(1.33333333-->1056x816) (2-->1584x1224)zoom_y = 1.33333333mat = 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+'/'+'images_%s.png' % pg)#将图片写入指定的文件夹内endTime_pdf2img = datetime.datetime.now()#结束时间print('pdf2img时间=',(endTime_pdf2img - startTime_pdf2img).seconds)# 调用
# pdf拆为pdf
# file_path = r'E:\work\样本\doc01680420210428144150.pdf' # 源文件所在的绝对路径
# root_obj = r'E:\work\样本拆分'
# pdf_outputdir = pdf_split(file_path, root_obj)# pdf拆分成图片
pdfPath = r'E:\work\样本\4.pdf'
imagePath = r'E:\work\4'
pyMuPDF_fitz(pdfPath, imagePath)
PDF按页拆分为PDF单页或者图片相关推荐
- 如何将Word默认的两页视图改为单页
Word这个沙雕软件. 今天打开word文档的时候又一次被气到了(-"-怒),沙雕Word每次打开新文档(从其他地方接收的,如QQ.微信)默认视图都是两页的,很烦人呐好不好,还没有设置的地方. 今天终 ...
- php单页程序,动态php单页站群源码,泛解析单页循环暴力域名站群系统
本程序是一个不需要数据库的动态php单页站群源码,动态版,需要php+zend环境支持,需要域名泛解析,需要独立主机或者vps支持,虚拟主机暂时无法达到效果, 设置好以后只需在文本导入你的关键词和文章 ...
- 切片应用:将双页扫描分割成单页的操作
参考链接:https://jingyan.baidu.com/article/ed2a5d1f5293b609f6be17e6.html https://jingyan.baidu.com/artic ...
- 单张PPT转成单张PDF的PDF文件怎么设置打印出一页纸有6页PPT
感谢天津大学李森的技术帮助@atomer 常见的PPT可以在打印的时候设置的时候设置每页纸打印6页PPT(由于下面电脑没有连接打印机,所以没法设置打印页边距,导致现在的页边距比较宽,PPT页面和纸张大 ...
- 分奇偶页后Word导出PDF目录页后多了空白页
在论文写作中,要求分奇偶页,但在导出PDF后,发现目录页后多了空白页,在word的编辑模式中是看不到的,在打印模式下才看到. 问题描述:中文摘要(单页)+英文摘要(单页)+目录页(单页)+正文.要求正 ...
- 即时低码数据库Web应用-ASP.NET Core 3.1单页应用(SPA)
目录 介绍 网格记录在编辑/添加上的持久性 用于创建单页应用程序(SPA)的步骤 在SQL Server Management Studio中创建数据库 打开Visual Studio Communi ...
- ajax div 赋值重新渲染_优化向:单页应用多路由预渲染指南
前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用.在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本, ...
- 用微前端的方式搭建类单页应用
前言 微前端由ThoughtWorks 2016年提出,将后端微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用. 美团已经是一家拥有几万人规模的大型互 ...
- SPA (单页应用程序)
单页Web应用 编辑 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程 ...
- UI设计实用素材|寻找一种新的方法来设计网站,单页网站
寻找一种新的方法来设计网站? 如果设计得当,单页网站可以为访问者创造更令人难忘的体验. 明智的设计选择可以帮助减少疲劳和沮丧,否则人们会感到使用网络. web设计者有很多方法可以减少分心.信息过载和分 ...
最新文章
- 报错引发的版本对应——tensorflow+keras+python版本对应(全)
- 新事务不能登记到指定的事务处理器中异常的处理----MSDTC的正确配置
- phpquery类php,一个基于phpQuery的php通用采集类分享
- html输入框只能输入几个,input 两个input框只能允许同时输入一个
- TCP的几个状态(SYN/FIN/ACK/PSH/RST)
- 《C++ Primer》13.1.3节练习
- 数据库设计中的14个关键技巧
- yum install -y iptraf 显示找不到命令
- 解释汇编中的AUGW LABEL WORD、ADDW LABEL WORD
- 存用部首查字典如何查_文献阅读技巧:牛人博士如何看文献!
- sublime text3创建文件时生成头部注释
- J2EE项目风险(翻译)
- VS 2012 No exports were found that match the constraint 解决办法
- Silverlight-Cailburn应用框架
- 由超高压的超导体猜测超导的真相
- php冗余,php – 如何使用规范化删除冗余?
- html如何将搜索图标放入搜索框中
- 【智能优化算法-灰狼算法】基于非支配排序灰狼优化器(NS-GWO)算法求解多目标优化算法附matlab代码
- ZOJ Problem 1005 jugs
- php 队列取并集,php多个数组并集、交集和差集操作函数总结
热门文章
- python股票交易接口是什么_python 股票交易接口【怎样用 Python 写一个股票自动交易的程序】...
- 适合包邮地区的 省市选择 jquery插件
- 从幼苗长成大树 中美两国GIS软件技术已并驾齐驱
- 不删除磁盘内容,如何给C盘扩容
- linux和主机共享文件,设置Linux虚拟机与主机共享文件的方法
- sit是什么环境_测试理论——SIT测试 和 UAT测试概念
- Android简易天气App
- HTML在线播放音乐实例,一步一步实战HTML音乐播放器(示例代码)
- java heartbeat
- ghd oracle,ghd ORACLE双管卷发棒怎么样?具有离子夹外型、卷发棒功能简直是手残少女救星...