近期有一些工作上的事情需要对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代码实现相关推荐

  1. opencv3计算机视觉python语言实现pdf_对比《OpenCV计算机视觉编程攻略第3版》《OpenCV 3计算机视觉Python语言实现第2版》PDF代码......

    OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等).从图像处理的基本操作出发,计算机 ...

  2. 浅谈python语言_浅谈Python语言基础知识点!

    一.Python 语言的简述 Python语言是一种解释型.面向对象的编程语言,是一种开源语言. Python属于动态类定义语言,也是一种强调类型语言. 二.Python 语言的特点 1.简单.高级 ...

  3. python语言程序设计嵩天-Python语言程序设计基础(第2版)嵩天课后答案

    嵩天.礼欣.黄天羽Python语言程序设计基础(第2版)习题答案本书提出了以理解和运用计算生态为目标的Python语言教学思想,在系统讲解Python语言语法的同时介绍了从数据理解到图像处理的14个P ...

  4. python语言程序设计是什么,python语言程序设计教程

    python语言程序设计是什么 Python是一种跨平台的计算机程序设计语言. 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 最初被设计用于编写自动化脚本(shell),随着版本的 ...

  5. 如何自学python语言-我是如何学习Python语言?

    我喜欢学习新的东西,包括工具,算法,技巧等.一来是帮助我更好地解决问题,二来学习的进程令我愉悦. 我是一位数据工作者,经常会使用到各种软件和工具帮助我解决各种数据问题,比方说数据的抽取与解析,数据的加 ...

  6. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

  7. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略

    Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名.合并两个不同路径下图片文件名等目录/路径案例.正确加载图片路径)之详细攻略 目录 利用python ...

  8. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  9. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

最新文章

  1. winform窗体自由拖拽控件
  2. Hadoop文件压缩格式分析和比较
  3. ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载H264视频流
  4. 100 个网络基础知识,看完成半个网络高手
  5. 字符串的获取相关方法
  6. 【原创】Linux安装Redis
  7. 如何做好云计算的运维工作
  8. 你敢信?FBI 的190万条恐怖分子监控名单竟无密码保护且不慎遭暴露
  9. 1076. Wifi密码 (15)-PAT乙级真题
  10. Verilog初级教程(13)Verilog中的块语句
  11. retinex(SSR,MSR,MSRCR)的优缺点
  12. Labwindows扫盲+技巧贴,CVI学习必看
  13. 台式机通过网线共享笔记本电脑无线网络
  14. HIT-2022年春季学期《软件构造》Lab 1实验心得
  15. 基于51单片机的水族箱温度水质监测智能宠物金鱼喂食器补氧换水proteus仿真原理图
  16. isBlank与isEmpty的区别
  17. 2022-2028年全球及中国羊皮避孕套行业发展现状调研及投资前景分析
  18. 电脑端与iPad 端如何共享ChemDraw结构
  19. Android 黑科技保活实现原理揭秘
  20. 关于uniapp打包报毒 主机名\证书弱校验风险

热门文章

  1. python代码根据时间获取周数(week of the year)
  2. 集成学习VotingClassifier、HistGradientBoostingClassifier、Stacking、Blending
  3. 清华大学王玉计算机,王玉珏(清华大学环境学院教授)_百度百科
  4. kettle分批处理大表数据_kettle 分批次拿数据库
  5. Comprehensive evaluation of error correction methods for high-throughput sequencing data
  6. 未找到文件 服务器可能无此更新包文件,win7安装xampp提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)的解决方案...
  7. 大数据分布式集群搭建(2)
  8. 车牌检测识别--Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks
  9. 对抗网络用于人脸转正--Beyond Face Rotation
  10. vmware 报错解决:The system cannot find the path specified.