参考:Python+pymupdf处理PDF文档案例6则 - 云+社区 - 腾讯云 (tencent.com)

参考原文有一些函数过时了,本文对其进行更新

环境

import fitz
import pdfplumber

母文件地址

fn = r'D:\Desktop\highlight_test.pdf'

一、提取pdf文件中的文本,写入文本文件

方法一:plumber 库

with pdfplumber.open("D:\\Desktop\\highlight_test.pdf") as pdf:for page in pdf.pages:text = page.extract_text()txt_file = open("D:\\Desktop\\a.txt",mode='a',encoding='utf-8')txt_file.write(text)

方法二:fitz 库

with fitz.open(fn) as doc,\open('D:\\Desktop\\aa.txt','w',encoding='utf8') as fp:for page in doc :fp.write(page.get_text()+'\n')

二、合并pdf文件

with fitz.open() as fpMerge:for t in (fn,)*3:with fitz.open(t) as fpSrc:fpMerge.insert_pdf(fpSrc)fpMerge.save('D:\\Desktop\\合并结果.pdf')

三、把pdf文件的每一页转换为独立的图片文件

with fitz.open(fn) as doc:for page in doc:mat = fitz.Matrix(2,2)pix = page.get_pixmap(matrix= mat)pix.save(f'{page.number}.png')

四、将pdf文件以图片形式保存为pdf

with fitz.open() as fpMerge:for pic in ('0.png',)*5:t = fitz.open('pdf',fitz.open(pic).convert_to_pdf())fpMerge.insert_pdf(t)fpMerge.save('D:\\Desktop\\内容转换为图片.pdf')

五、提取pdf文件中的图片

with fitz.open(fn) as doc:for page in doc:for item in page.get_images():xref = item[0]img = doc.extract_image(xref)with open(f'{xref}.{img["ext"]}','wb') as fpPic:fpPic.write(img['image'])

六、添加文本注释为关键词添加高亮、删除线、下划线注释

word1,word2,word3 = ('高亮','删除线','注释')
with fitz.open(fn) as doc:for page in doc:page.add_text_annot((200,200),'文本注释')for txt in page.search_for(word1):page.add_highlight_annot(txt)for txt in page.search_for(word2):page.add_strikeout_annot(txt)for txt in page.search_for(word3):page.add_underline_annot(txt)doc.save('D:\\Desktop\\添加注释.pdf')

如果对高亮部分进行颜色的修改(高亮部分颜色是遵循RGB标准):

with fitz.open("D:\\Desktop\\文字.pdf") as doc:for page in doc:for txt in page.search_for(w):highlight = page.add_highlight_annot(txt)highlight.set_colors(stroke=[1, 1, 1])highlight.update()doc.save('D:\\Desktop\\add_annotion.pdf')

这里 stroke 其实就代表了,[ 1*255, 1*255,1*255 ] 所以,[1,1,1 ] 在这里是清除高亮的效果。

python中 fitz 库和 pdfplumber 混合操作相关推荐

  1. 通过Python的fitz库提取pdf中的图片

    文章目录 前言 一.fitz库是什么? 二.安装fitz库 三.查看fitz库版本 四.pymupdf库是什么? 五.安装pymupdf库 六.查看pymupdf库版本 七.fitz和pymupdf是 ...

  2. Python 中MNE库去伪迹(ICA)案例的逐句解析

    本文是在阅读博主zhoudapeng01的文章Python 中MNE库去伪迹(ICA)_zhoudapeng01的博客-CSDN博客_ica mne后做的一个翻译工作. 主要介绍的还是ICA,需要了解 ...

  3. python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片

    我们知道,在使用PhotoShop进行图片的抠取.创建和存储选区.存储图像的色彩资料等复杂操作时,经常会用到一个功能,那就是"RGB"通道,它能从三原色角度对一幅图片进行精准处理. ...

  4. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解

    有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...

  5. Python中os库的使用

    文章目录 Python中os库的使用 1. path子库 1.1 获取绝对路径 1.2 归一化path的表示形式 1.3 得到文件的相对路径 1.4 获取目录名 1.5 获取文件名 1.6 路径组合 ...

  6. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  7. 使用python中PIL库进行切图时候出现了图片全黑

    使用PIL的Image切图时候图片全黑 不知道大家有没有遇见这样得问题,使用python中PIL库进行切图时候出现了图片全黑得现象 今天写了个切图得代码,但是得到得图片是全黑的,像这样的情况: 不知道 ...

  8. 详解Python中pyautogui库的最全使用方法

    这篇文章主要介绍了详解Python中pyautogui库的最全使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值 在使用Python做脚本的话,有两个库可以使用,一个 ...

  9. Python中pyautogui库的最全使用方法

    Python中pyautogui库的最全使用方法 Python中pyautogui库的最全使用方法 常用操作 鼠标操作 键盘操作 弹窗操作 图像操作 参考资料 Python中pyautogui库的最全 ...

最新文章

  1. We7 从这里开始---安装we7
  2. 基于图文界面的蓝牙扫描工具btscanner
  3. 使用fluentd管理docker日志
  4. .net core之ACG小站爬虫(二)
  5. document.createElement
  6. [插头DP自我总结]
  7. html5新加的元素,HTML5新增元素
  8. 2018年wine QQ最完美解决方案(多Linux发行版通过测试并稳定运行)
  9. python俄罗斯方块编码简单_python俄罗斯方块教程-100行代码
  10. 如何批量保存html,如何批量保存网页信息
  11. Trafodion建表之使用多温度特性
  12. buck电路上下管_BUCK/BOOST电路原理
  13. php datedif,Datedif函数全面解析及BUG分析
  14. lisp 左手钢筋_左手键配置程序
  15. 游戏手柄(JoyStick)编程学习笔记(1)
  16. ept技术_速懂X86虚拟化关键概念 - Intel EPT
  17. Golang 同步等待组(WaitGroup)
  18. 設計模式之Visitor
  19. android多个按钮美化,Android开发学习系列(一)——Android按钮圆角美化
  20. 怎样知道自己的电脑是否支持GPU?

热门文章

  1. 在线看奥运----资源大全
  2. python利用pymannkendall包进行MK(Mann-Kendall)趋势检验
  3. matlab可以实现从阻抗圆到导纳圆,阻抗匹配与史密斯(Smith)圆图,这是我见过最详尽的版本...
  4. 用JS实现歌词与播放音乐同步
  5. SRC-script:挖掘src常用脚本收集
  6. 破解PDF文件密码?没必要的!
  7. 初三物理光学知识点总结_初二物理:“光学”知识点总结
  8. 亿康先达全球董事会多元化追踪报告显示,进展缓慢且微不足道——有必要采取重大行动
  9. js中的mock操作
  10. 李沐论文精读系列一: ResNet、Transformer、GAN、BERT