利用pymupdf编辑修改pdf

本文背景

为了修改pdf的文本, 在pymupdf官方手册查了一通,没看到明显的说明,然后到github的讨论区看了发现了修改pdf的方案,在此记录一下

参考链接: https://github.com/pymupdf/PyMuPDF/discussions/1019

主要方法:

  1. 找到需要替换的文本块,然后添加修订注释(redaction annotation)
  2. 添加注释后,步骤1的文本块会被删除
  3. 在原位置添加新的文本块

注意事项:

  • 字体问题: 要考虑被替换的文本块和新的文本块字体是否一致,否则可能看起来跟上下文显得突兀
  • 文本长度问题: 最好文本长度差不多,不然可能跟周围的文本块有重叠或者留白太多
  • 如果原文本是隐藏文本或者透明的, 文件信息是提取不到它的这个属性,新插入的文本将是可见的

修改PDF实践

1. 删除某些文本块

根据前文说明,我们发现使用修订注释可以删除文本块的,因此我们可以利用该方法进行一些文本块的删除操作,具体示例如下:

  • 原文件如下,其中**" 年 月 日"**是我要删除的文本块
  • 相关代码
import fitz
doc = fitz.open("PDF文件路径")
page = doc.load_page(0)
# 遍历文本块,找到对应的文本块
def find_textbox(page:fitz.Page,keyword:str)->dict:info = page.get_text('json')for block in info['blocks']:for line in block['lines']:for span in line['spans']:text = span.get('text','').replace(' ','')if text == keyword:return span
target = find_textbox(page,'年月日')
page.add_redact_annot(target['bbox'])
page.apply_redactions()
doc.save("保存文件路径")
  • 删除效果如下:

2. 修改文本块

修改文本块,就是在添加修订注释后,增加文本块即可
代码如下:

import fitz
doc = fitz.open("PDF文件路径")
page = doc.load_page(0)
# 遍历文本块,找到对应的文本块
def find_textbox(page:fitz.Page,keyword:str)->dict:info = page.get_text('json')for block in info['blocks']:for line in block['lines']:for span in line['spans']:text = span.get('text','').replace(' ','')if text == keyword:return span
target = find_textbox(page,'年月日')
page.add_redact_annot(target['bbox'],'今夕复何夕',fontname='china-s',fontsize=target['size'])
page.apply_redactions()
doc.save("保存文件路径")

利用pymupdf编辑修改pdf相关推荐

  1. 教你如何编辑修改PDF文件内容

    PDF这种便携式的文档,因其独有的特性在现在的办公中应用越来越广,虽然这种文档经常遇见但是还有很多人对PDF内容的修改不是很清楚,下面就讲下怎么编辑修改pdf的文字. ​ 查看PDF文件通过阅读器就可 ...

  2. 好用的PDF阅读器下载之如何编辑修改PDF文件

    PDF文件已经成为办公常用文件格式,以其不易编辑二被广泛使用,可接触PDF文件,不可避免的就是编辑PDF文件,但大家一直都没有找到编辑PDF文件的方法,其实,一个简单的PDF阅读器就能轻松搞定. 一: ...

  3. 如何用PDF编辑器编辑、修改PDF文本和图片?

    作为编辑PDF必不可少的软件,PDF编辑器随着PDF应用越来越广泛,被人们逐渐熟悉.使用PDF编辑器修改文字内容属于PDF编辑的一项功能,通常来说需要分两种情况对待,一种是PDF中的文字是文本,另一种 ...

  4. PDF怎么编辑修改内容?分享两种编辑修改方法

    PDF文件怎么编辑修改内容呢?PDF格式的文件是大家在工作中经常会使用到的,可以用来发送文件.阅读文件或者是保存文件.相信大家在阅读使用的时候,肯定有过需要编辑修改文件内容的需求,因为当我们发现文件中 ...

  5. PDF怎么编辑修改内容?教你一招轻松搞定

    怎么编辑修改PDF文件中的内容呢?大家在日常中使用PDF文件的时候,如果发现文件中出现错误的内容时,想要编辑修改里面的文字,怎么才能做到呢?大家都知道PDF文件不能直接在里面编辑,所以有很多小伙伴想知 ...

  6. 如何编辑 删除 修改 pdf文件中的文字

    要编辑修改PDF文件一般用三种 软件 ,分别是:(1)Adobe Acrobat:(2)Foxit PDF Editor:(3)文电通.现介绍用Adobe Acrobat软件编辑PDF文件的方法: 你 ...

  7. PDF怎么编辑修改?PDF编辑软件介绍

    PDF文件凭借其优越的稳定性和兼容性一直是很多人传输文件的首选,但正因如此,当我们需要编辑的时候就会感觉不太方便.PDF怎么编辑修改又能保留原格式呢?今天来教大家两种方法,一起来看看吧. 一.使用手机 ...

  8. 对PDF文件内容如何进行编辑修改

    办公中在处理一些文档资料的时候除了常见的office文档外,还会遇到一些其他格式文档,PDF就是比较常见的一种,但是对这种文档的编辑修改还是有些人不知道怎么操作,要对PDF文件内容进行编辑该怎样操作呢 ...

  9. 如何编辑PDF文件,怎么修改PDF中的文字

    相信大家都使用过PDF文件,那么有没有编辑过PDF文件呢,PDF文件的编辑是需要借助PDF编辑器的,PDF文件中的文字要怎么修改呢,Word文档的文字就直接编辑,而PDF文件并非这样,想知道怎么编辑吗 ...

最新文章

  1. v2.matchTemplate图片尺寸问题
  2. 计算机硬件人员专业知识技能,2017年江苏省职业学校技能大赛(计算机硬件)竞赛实施方案...
  3. spring boot: Bean的初始化和销毁 (一般注入说明(三) AnnotationConfigApplicationContext容器 JSR250注解)...
  4. Stanford NLP
  5. linux文件解压zip文件,linux下解压zip文件报错
  6. data-role参数表:
  7. 图像处理理论-颜色模式
  8. Spring boot 2.0 with Oauth2 + Jwt
  9. 不用图像文件的圆角解决--跳起按钮制作(html)
  10. Python之旅Day14 JQuery部分
  11. vrep外部控制器力矩控制实例——以matlab脚本控制平面两连杆为例
  12. 测试自学人必看:软件测试如何找测试项目?
  13. mouseover 和 mouseenter 的区别
  14. freeradius mysql web_使用daloRADIUS Web程序管理FreeRADIUS服务
  15. 操作系统 - Lightdm
  16. Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化
  17. jdk15和jdk8_jdk15下载
  18. 从入门到断送职业生涯只差这几步
  19. 外行人如何通过学习软件测试转行IT
  20. sql 多条合并一条数据方法摘录

热门文章

  1. Qt 之 中英文切换的使用
  2. 上网时遇到的 404 是什么意思?
  3. 中国爱眼教育大会|2023山东眼健康产业展会|标展5500元
  4. 使用手册 煤矿风险管控系统_煤矿风险分级管控手册(新编)
  5. Mac版PS如何导入笔刷 ,ps笔刷导入安装教程
  6. 微信扫码登陆在chrome浏览器被拦截
  7. 基于微信健身房私教预约小程序系统设计与实现 开题报告
  8. 斐波那契数列_菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。
  9. h5使用js的点击复制功能,兼容安卓和ios,亲测有效
  10. Excel单元格如何调整行高与列宽?经验技巧!excel怎样设置单元格的高与宽?