open python语言实现 pdf_使用python操作Pdf代码实现
近期有一些工作上的事情需要对pdf进行一些的操作,所以结下来稍微总结一下吧:
写在前面:
需要对PyPDF2,PyMuPDF库安装
直接pip就好:
pip install PyPDF2
pip install PyMuPDF
Pdf操作相关代码实现:
1.使用PyMuPDF从PDF中提取图像
2.#将单个pdf文件每一页拆分出来,得到多个pdf
3.在pdf中查找包含某个文本的页面
4. 将pdf转化为一页页的pdf
5.将某一批文件由word格式转化为pdf格式
1.使用PyMuPDF从PDF中提取图像
import fitz
pdf_document = fitz.open("C题copy.pdf")
for current_page in range(len(pdf_document)):
for image in pdf_document.getPageImageList(current_page):
xref = image[0]
pix = fitz.Pixmap(pdf_document,xref)
if pix.n < 5:
pix.writePNG("page%s-%s.png" % (current_page , xref)
)
else:
pix1 = fitz.Pixmap(fitz.csRGB , pix)
pix1.writePNG("page%s-%s.png" %(current_page , xref))
pix1 = None
pix = None
#在200页PDF上运行这个Python脚本,它在不到2秒的时间内提取了198个图像,这是惊人的。 各个图像以PNG格式存储。 为了保持原始图像格式和大小,而不是转换为PNG,请查看PyMuPDF wiki中脚本的扩展版本。
2.#将单个pdf文件每一页拆分出来,得到多个pdf
from PyPDF2 import PdfFileReader , PdfFileWriter
pdf_documnet = "C题copy.pdf"
pdf = PdfFileReader(pdf_documnet)
for page in range(pdf.getNumPages()):
pdf_writer = PdfFileWriter()
current_page = pdf.getPage(page)
pdf_writer.addPage(current_page)
outputFilename = "{}-page-{}.pdf".format(pdf_documnet,page + 1)
with open(outputFilename , "wb") as out:
pdf_writer.write(out)
print("create" , outputFilename)
3.在pdf中查找包含某个文本的页面
#查找包含文本的所有页面
import fitz
filename = "C题copy.pdf"
search_term = "连续"
pdf_document = fitz.open(filename)
for current_page in range(len(pdf_document)):
page = pdf_document.loadPage(current_page)
if page.searchFor(search_term):
print("%s found on page %i" % (search_term , current_page))
4. 将pdf转化为一页页的pdf
import fitz
PDF_path = r'C题copy.pdf'#fielpath
imgs_save_path = "pdf_picture/"
def PDF_to_imgs(PDF_path, save_path):
# 打开PDF文件,生成一个对象
doc = fitz.open(PDF_path)
# 将PDF文件的每一页都转化为图片
for pg in range(doc.pageCount):
page = doc[pg]
rotate = int(0)
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高4倍的图像。
zoom_x = 2
zoom_y = 2
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
pm.writePNG(save_path + '%s.png' % pg)
PDF_to_imgs(PDF_path, imgs_save_path)
5.将某一批文件由word格式转化为pdf格式
import os
#!pip install win32com
from win32com import client
def doc2pdf(doc_name, pdf_name):
"""
:word文件转pdf
:param doc_name word文件名称
:param pdf_name 转换后pdf文件名称
"""
try:
word = client.DispatchEx("Word.Application")
if os.path.exists(pdf_name):
os.remove(pdf_name)
worddoc = word.Documents.Open(doc_name,ReadOnly = 1)
worddoc.SaveAs(pdf_name, FileFormat = 17)
worddoc.Close()
return pdf_name
except:
return 1
if __name__=='__main__':
picture_path = r"C:\Users\Administrator\Desktop\2015" #想要转化的图片文件夹的路径
list_img_test = os.listdir(picture_path)
list_one = [] #用于保存转化后的每一个latex代码
for i in list_img_test:
file_path = os.path.join(picture_path , i)
doc_name = file_path
ftp_name = file_path+".pdf"
doc2pdf(doc_name, ftp_name)
print("ok!")
说明:这里的 win32com库对于win,直接在cmd中用pip Install win32com下载就好,然而在mac上却不能用真是头疼,得想个解决方案!有想法的朋友欢迎在评论区留言!
open python语言实现 pdf_使用python操作Pdf代码实现相关推荐
- opencv3计算机视觉python语言实现pdf_对比《OpenCV计算机视觉编程攻略第3版》《OpenCV 3计算机视觉Python语言实现第2版》PDF代码......
OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等).从图像处理的基本操作出发,计算机 ...
- 浅谈python语言_浅谈Python语言基础知识点!
一.Python 语言的简述 Python语言是一种解释型.面向对象的编程语言,是一种开源语言. Python属于动态类定义语言,也是一种强调类型语言. 二.Python 语言的特点 1.简单.高级 ...
- python语言程序设计嵩天-Python语言程序设计基础(第2版)嵩天课后答案
嵩天.礼欣.黄天羽Python语言程序设计基础(第2版)习题答案本书提出了以理解和运用计算生态为目标的Python语言教学思想,在系统讲解Python语言语法的同时介绍了从数据理解到图像处理的14个P ...
- python语言程序设计是什么,python语言程序设计教程
python语言程序设计是什么 Python是一种跨平台的计算机程序设计语言. 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 最初被设计用于编写自动化脚本(shell),随着版本的 ...
- 如何自学python语言-我是如何学习Python语言?
我喜欢学习新的东西,包括工具,算法,技巧等.一来是帮助我更好地解决问题,二来学习的进程令我愉悦. 我是一位数据工作者,经常会使用到各种软件和工具帮助我解决各种数据问题,比方说数据的抽取与解析,数据的加 ...
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录
- Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名.合并两个不同路径下图片文件名等目录/路径案例.正确加载图片路径)之详细攻略 目录 利用python ...
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...
最新文章
- winform窗体自由拖拽控件
- Hadoop文件压缩格式分析和比较
- ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载H264视频流
- 100 个网络基础知识,看完成半个网络高手
- 字符串的获取相关方法
- 【原创】Linux安装Redis
- 如何做好云计算的运维工作
- 你敢信?FBI 的190万条恐怖分子监控名单竟无密码保护且不慎遭暴露
- 1076. Wifi密码 (15)-PAT乙级真题
- Verilog初级教程(13)Verilog中的块语句
- retinex(SSR,MSR,MSRCR)的优缺点
- Labwindows扫盲+技巧贴,CVI学习必看
- 台式机通过网线共享笔记本电脑无线网络
- HIT-2022年春季学期《软件构造》Lab 1实验心得
- 基于51单片机的水族箱温度水质监测智能宠物金鱼喂食器补氧换水proteus仿真原理图
- isBlank与isEmpty的区别
- 2022-2028年全球及中国羊皮避孕套行业发展现状调研及投资前景分析
- 电脑端与iPad 端如何共享ChemDraw结构
- Android 黑科技保活实现原理揭秘
- 关于uniapp打包报毒 主机名\证书弱校验风险
热门文章
- python代码根据时间获取周数(week of the year)
- 集成学习VotingClassifier、HistGradientBoostingClassifier、Stacking、Blending
- 清华大学王玉计算机,王玉珏(清华大学环境学院教授)_百度百科
- kettle分批处理大表数据_kettle 分批次拿数据库
- Comprehensive evaluation of error correction methods for high-throughput sequencing data
- 未找到文件 服务器可能无此更新包文件,win7安装xampp提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)的解决方案...
- 大数据分布式集群搭建(2)
- 车牌检测识别--Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks
- 对抗网络用于人脸转正--Beyond Face Rotation
- vmware 报错解决:The system cannot find the path specified.