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单页或者图片相关推荐

  1. 如何将Word默认的两页视图改为单页

    Word这个沙雕软件. 今天打开word文档的时候又一次被气到了(-"-怒),沙雕Word每次打开新文档(从其他地方接收的,如QQ.微信)默认视图都是两页的,很烦人呐好不好,还没有设置的地方. 今天终 ...

  2. php单页程序,动态php单页站群源码,泛解析单页循环暴力域名站群系统

    本程序是一个不需要数据库的动态php单页站群源码,动态版,需要php+zend环境支持,需要域名泛解析,需要独立主机或者vps支持,虚拟主机暂时无法达到效果, 设置好以后只需在文本导入你的关键词和文章 ...

  3. 切片应用:将双页扫描分割成单页的操作

    参考链接:https://jingyan.baidu.com/article/ed2a5d1f5293b609f6be17e6.html https://jingyan.baidu.com/artic ...

  4. 单张PPT转成单张PDF的PDF文件怎么设置打印出一页纸有6页PPT

    感谢天津大学李森的技术帮助@atomer 常见的PPT可以在打印的时候设置的时候设置每页纸打印6页PPT(由于下面电脑没有连接打印机,所以没法设置打印页边距,导致现在的页边距比较宽,PPT页面和纸张大 ...

  5. 分奇偶页后Word导出PDF目录页后多了空白页

    在论文写作中,要求分奇偶页,但在导出PDF后,发现目录页后多了空白页,在word的编辑模式中是看不到的,在打印模式下才看到. 问题描述:中文摘要(单页)+英文摘要(单页)+目录页(单页)+正文.要求正 ...

  6. 即时低码数据库Web应用-ASP.NET Core 3.1单页应用(SPA)

    目录 介绍 网格记录在编辑/添加上的持久性 用于创建单页应用程序(SPA)的步骤 在SQL Server Management Studio中创建数据库 打开Visual Studio Communi ...

  7. ajax div 赋值重新渲染_优化向:单页应用多路由预渲染指南

    前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用.在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本, ...

  8. 用微前端的方式搭建类单页应用

    前言 微前端由ThoughtWorks 2016年提出,将后端微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用. 美团已经是一家拥有几万人规模的大型互 ...

  9. SPA (单页应用程序)

    单页Web应用 编辑 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程 ...

  10. UI设计实用素材|寻找一种新的方法来设计网站,单页网站

    寻找一种新的方法来设计网站? 如果设计得当,单页网站可以为访问者创造更令人难忘的体验. 明智的设计选择可以帮助减少疲劳和沮丧,否则人们会感到使用网络. web设计者有很多方法可以减少分心.信息过载和分 ...

最新文章

  1. 报错引发的版本对应——tensorflow+keras+python版本对应(全)
  2. 新事务不能登记到指定的事务处理器中异常的处理----MSDTC的正确配置
  3. phpquery类php,一个基于phpQuery的php通用采集类分享
  4. html输入框只能输入几个,input 两个input框只能允许同时输入一个
  5. TCP的几个状态(SYN/FIN/ACK/PSH/RST)
  6. 《C++ Primer》13.1.3节练习
  7. 数据库设计中的14个关键技巧
  8. yum install -y iptraf 显示找不到命令
  9. 解释汇编中的AUGW LABEL WORD、ADDW LABEL WORD
  10. 存用部首查字典如何查_文献阅读技巧:牛人博士如何看文献!
  11. sublime text3创建文件时生成头部注释
  12. J2EE项目风险(翻译)
  13. VS 2012 No exports were found that match the constraint 解决办法
  14. Silverlight-Cailburn应用框架
  15. 由超高压的超导体猜测超导的真相
  16. php冗余,php – 如何使用规范化删除冗余?
  17. html如何将搜索图标放入搜索框中
  18. 【智能优化算法-灰狼算法】基于非支配排序灰狼优化器(NS-GWO)算法求解多目标优化算法附matlab代码
  19. ZOJ Problem 1005 jugs
  20. php 队列取并集,php多个数组并集、交集和差集操作函数总结

热门文章

  1. python股票交易接口是什么_python 股票交易接口【怎样用 Python 写一个股票自动交易的程序】...
  2. 适合包邮地区的 省市选择 jquery插件
  3. 从幼苗长成大树 中美两国GIS软件技术已并驾齐驱
  4. 不删除磁盘内容,如何给C盘扩容
  5. linux和主机共享文件,设置Linux虚拟机与主机共享文件的方法
  6. sit是什么环境_测试理论——SIT测试 和 UAT测试概念
  7. Android简易天气App
  8. HTML在线播放音乐实例,一步一步实战HTML音乐播放器(示例代码)
  9. java heartbeat
  10. ghd oracle,ghd ORACLE双管卷发棒怎么样?具有离子夹外型、卷发棒功能简直是手残少女救星...