继上一次为大家推出了将pdf转word之后(卧槽!Pdf转Word用Python轻松搞定!),引起了大家的热烈讨论,我也总结了大家的一些意见和建议,今天就进一步的为大家推出一个新的版本。
从pdf中提取表格数据,并保存到本地的excel文件当中,并且还为大家加入了添加水印和去除水印的功能。虽然在去除水印的效果上可能不如付费的项目那么好,但是也足够大家在日常生活中进行使用,下面我们就一起来看看吧。
01.如何提取表格
首先要面临的第一问题就是如何提取pdf中的表格,如下图所示:
我们需要将上述的表格进行提取,并保存到本地的excel文件之中,程序如下所示:
上述程序中,我们利用pdfplumber库来打开一个pdf文件,然后如果我们想要提取某几页的表格,可以在pageindexs这个形参中指明,否则我们就提取pdf文件中所有的表格信息,并保存到我们的本地excel表内,结果如下图所示,我们提取了pdf中所有的表格:
02.水印的处理
接下来就是水印的处理,我们先来进行添加水印,也就是给我们的pdf文件添加我们的专属logo,这里我们添加的是图片水印,效果如下所示:
我们的程序也很简单:
上述程序中,我们首先将水印图片利用word保存为pdf格式,然后通过PyPDF2库中的PdfFileReader类来读取图片水印并通过PdfFileWriter添加到我们指定的pdf中,完成图片水印的添加。
既然有图片水印的添加,那肯定有图片水印的去除,其达到的效果就是上述程序达到的相反效果,去除图片水印的程序如下图所示:
我们利用fitz库来打开pdf文件,并统计里面的图片文件,因为我们的图片水印也是图片,所以能够得到水印图片的信息,我们打印出来图片的信息,其信息中的索引2和索引3就代表着图片的大小,我们根据图片的大小判断是否为水印图片,来隐藏pdf文件中的水印图片,达到去除水印的目的。
上述的程序针对的是图片水印,但是,我们日常面临的水印都是背景水印,类似于下图的情况。
这种情况下,上述的程序就不管用了,但是我们还有办法,就是利用像素进行处理,我们将pdf转换成图片,然后调节图片的对比度和亮度来达到删除水印的目的,然后将转换完后的图片转换为pdf即可,部分程序如下图所示:
上述程序中,是利用fitz库将pdf文件中的每页pdf转化成指定大小的图片文件,并保存到指定的文件夹内。
最终转化后的结果如下图所示:
上图我们可以看到,我们成功的删除了背景水印,但是由于调节的原因,对于保留的文本也有一定的影响,但是影响不是很大。如果大家感兴趣的话,可以借鉴ps的处理技术,通过背景水印模板来去除水印,达到更好的去除效果,但是这需要水印模板和我们pdf模板中的水印在位置,形状和大小等方面完全一致,要求比较高,不如上述方法来的简单。
以上就是小编今天为大家带来的分享,我们完成了对于表格的提取,和图片水印的添加和去除以及背景水印的去除,大家也赶紧动手应用起来吧。
后记
自学编程的过程是很痛苦的,有的时候没有人指导,慢慢的会变成从入门到放弃,可能懂的人只要花1-2分钟就能帮你解决的问题,不懂的人要折腾几个小时。最近不断的有小伙伴希望我们建一个交流群,有想加入的同学,可以跟小助手联系。这个群的目的如下:
1. 帮助初学者的一起解惑一些入门的Python问题
2. 我们经常有答题送书的福利,有了群更容易联系到大家
3. 已经在我们小密圈群的同学就不要再加入了,避免重复入群
目前青铜群已经有220多人,我们采用筛选制度,会根据一些后台数据,进行筛选的!生面孔或者不常来的,我们一概谢绝入内。有专人进行答疑解惑入门问题。
入群请找菜鸟哥
暗号:【入群】
<p style="text-align: center;"><img class="rich_pages" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="430" style="box-sizing: border-box !important;visibility: visible !important;width: 240px !important;" src="https://www.zkxjob.com/wp-content/uploads/2022/05/wxsync-2022-05-a418d75041ec613a03a66adfdba73770.jpeg" /></p><p style="text-align: center;"><span style="font-size: 15px;"><strong>小助手最近在出差ing,非常辛苦,都不容易!</strong></span></p><p style="text-align: center;"><span style="font-size: 15px;"><strong>回复很慢大家多见谅哈</strong></span></p>
<p style="margin-right: 8px;margin-left: 8px;"><span style="font-size: 15px;"><strong>近期热门:</strong><br /></span></p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);font-size: 15px;">● </span><span style="color: rgb(0, 122, 170);font-size: 15px;text-decoration: underline;">我的神!用Python竟然还能做一个文字套娃</span></p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;text-align: left;widows: 1;word-spacing: 10px;background-color: rgb(255, 255, 255);color: rgb(0, 122, 170);font-size: 15px;">● </span><span style="font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;text-align: left;widows: 1;word-spacing: 10px;background-color: rgb(255, 255, 255);color: rgb(0, 122, 170);font-size: 15px;text-decoration: underline;">2020年5月编程语言排行榜,Python竟然排老三</span></p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;">● 我珍藏的一些好的Python代码,技巧|上篇</p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);font-size: 15px;">● <span style="text-decoration: underline;">爬取300本Python书籍,用Python告诉你哪家强?</span></span></p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);font-size: 15px;">● </span><span style="color: rgb(0, 122, 170);font-size: 15px;text-decoration: underline;">卧槽!Pdf转Word用Python轻松搞定!</span></p><p style="margin: 10px 8px 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="font-size: 15px;"><span style="color: rgb(0, 122, 170);">● </span><span style="color: rgb(0, 122, 170);text-decoration: underline;">我打赌,学会这6招,谁再敢笑你的Python程序慢!</span></span></p>
点击阅读原文,阅读近400篇原创Python案例
本篇文章来源于: 菜鸟学Python
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈