pdf文件是办公中非常常见的文件,而且为了保密,常常加水印并且加密,你无法直接复制内容出来。

直接复制出来的效果如图所示。

贯,署,纵,川(:)2022 。一、工作思路2022 “”。:“、聚焦”“1 2333”,绕,“41 2”

通常情况下pdf转word可以直接用word打开pdf文件,另存为word来解决。

import win32com.client as win32
import osword = win32.gencache.EnsureDispatch('Word.Application')
# 是否显示。如果这里是True,桌面上会展示打开word再关掉的过程。
# 是False的话这个过程不会显示出来
word.Visible =False
output = word.Documents.Add()
output.Application.Selection.InsertFile('111.pdf')
output.SaveAs('111.docx')
output.Close()

然而强如微软出来的依然是乱码:

普通的pdf转word的python工具包同样无效。

from pdf2docx import Converter
pdf_file = 'demo.pdf'
docx_file = 'demo.docx'
cv = Converter(pdf_file)
cv.convert(docx_file, start=0, end=None)
cv.close()

他的效果是将pdf每一页作为图片全部粘贴到word内,你同样达不到复制文字的效果。

这里我们唯一的办法就是利用python去掉水印并生成图片,再利用百度的ocr人工智能服务将图片精确转化为文字。

我们资料的水印如图所示。

我们用前面讲过的方法先把水印干掉再说。

资料有水印?不存在的,马上python表演消失术

from PIL import Image
from itertools import product
import fitz
import osdef remove_pdf():page_num = 0pdf_file = input("请输入 pdf 地址:")pdf = fitz.open(pdf_file);for page in pdf:pixmap = page.get_pixmap()for pos in product(range(pixmap.width), range(pixmap.height)):rgb = pixmap.pixel(pos[0], pos[1])if(sum(rgb) >= 520):pixmap.set_pixel(pos[0], pos[1], (255, 255, 255))pixmap.pil_save(f"pdf_images/{page_num}.jpg",quality=100,dpi=(1800,1800))print(f"第{page_num}水印去除完成")page_num = page_num + 1remove_pdf()

因为pdf转图片的时候,如果不设置参数,会非常的模糊,利用quality和dpi参数我们尽量把图片质量进行优化。经过实测,如果不优化,就连百度ocr有时候识别也犯迷糊。

此时我们得到了去除水印的高清图片,一共95页。

得到图片后,我们只需要一张张送入百度OCR模型进行识别,将输出的文字进行拼接,最后生成我们想要的txt或word就拿到了我们想要的文字。

首先进入自己的百度智能云后台,点击免费尝鲜把能领的api全部领了,这个api你不领,只会优惠越来越少。

在后台可以按照提示进行开发,首先领(白嫖)额度,创建应用,调用服务。

以前还可以免费领通用OCR场景和增值税发票的免费额度,现在都没有了,所以赶快领,不要有任何的迟疑。

通过查看api文件来领悟如何调用api。

通过此段代码来拿到access_token。

# encoding:utf-8
import requests# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的ak(创建应用后看得到)&client_secret=你的sk(创建应用后看得到)'
response = requests.get(host)
if response:print(response.json())

拿到access_token后就可以利用循环调用api识别95次,再把文字拼接起来就完成我们pdf转文字的任务了。

# encoding:utf-8import requests
import base64page_num=0
words = []for i in range(96):request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"# 二进制方式打开图片文件f = open(f"pdf_images/{page_num}.jpg", 'rb')img = base64.b64encode(f.read())params = {"image": img}access_token = '[刚才拿到的access_token复制到这里]'request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)# if response:#     print(response.json())words_result = response.json()['words_result']for i in range(len(words_result)):words.append(words_result[i]['words'])page_num+=1print(''.join(words))with open("test.txt","w") as f:f.write(''.join(words))

运行完程序后,我们就将一个带水印且加密了的pdf完全转换成txt纯文本了,经测试,只要你图片质量高,那识别率就是100%。

只要你看懂了这个例子,你就可以利用百度智能云上面的免费api为所欲为了。

看懂的一键三连,没看懂的收藏后慢慢看。

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

【Python】利用python和百度通用OCR文字识别模型处理pdf文件(有水印且加密)相关推荐

  1. python百度云ocr文字识别软件_基于百度云的OCR识别(Python)

    2019年7月3日早上,在百度AI开发者大会上,一个来自山西的青年,将一瓶矿泉水浇在了同样来自山西的李彦宏身上. 可以回顾一下 https://b23.tv/av57665929/p1 ,着实让人一惊 ...

  2. 如何用OCR文字识别软件将PDF转换成Excel

    最近老板老是让小编处理PDF文件,这OCR识别软件咱也不懂,也不敢问,只能一字一字的码在Excel上,但是这波操作效率不高,还没完成任务,老板又发了一堆PDF文件需要处理,怎么办呢? 跟朋友说了这事后 ...

  3. 福昕风腾pdf导出为html,福昕高级PDF编辑器,支持文档格式转化、OCR 文字识别的智能 PDF 编辑器...

    福昕高级PDF编辑器提供了一套完整的 PDF 管理方案,支持对 PDF 文档进行编辑.标注.OCR 文字识别.页面管理.转换格式等一系列操作. 福昕是老牌的 PDF 软件方案与服务提供商,拥有全球领先 ...

  4. python 图片处理(pillow和OCR文字识别)

    之前用过 c++做opencv项目 这次用它做一下python opencv,图片截取固定像素: 仅仅记录一些步骤,知识点和踩坑. 环境: 安装要用: pip install opencv-pytho ...

  5. 识别图片baidu ai php,PHP+百度AI OCR文字识别实现了图片的文字识别功能

    第一步可定要获取百度的三个东西 要到百度AI网站(http://ai.baidu.com/)去注册 然后获得 -const APP_ID = '请填写你的appid'; -const API_KEY ...

  6. php 图片 字母识别,PHP+百度AI OCR文字识别实现了图片的文字识别功能

    第一步可定要获取百度的三个东西 要到百度AI网站(http://ai.baidu.com/)去注册 然后获得 -const APP_ID = '请填写你的appid'; -const API_KEY ...

  7. opencv学习笔记五--文件扫描+OCR文字识别

    opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...

  8. acrobat进行OCR文字识别失败

    OCR文字识别失败是因为pdf有一页图片过于华丽,无法识别, 在adobe acrobat报错的时候,瞅准这一页的页码,然后跳过这一页,继续文字识别其他页就可以了. 黑底白字识别也会失败.adobe ...

  9. python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统

    操作步骤: 1:登陆打开CET-考试系统 2:填写相关登陆信息 3:调用百度ocr实现文字验证码识别 4:实现登陆 如何使用和调用百度ocr文字识别接口 1:进入百度AI开发平台:链接 2:在页面上选 ...

最新文章

  1. PHP pear安装
  2. C++语言之一个派生类继承了所有的基类方法,但下列情况除外
  3. oracle function详解,Oracle 函数 Function 解析
  4. template_1
  5. 关于页面的多种自适应布局——两列布局
  6. 论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings
  7. 计算机检索基础知识,[转载]四 计算机文献检索基础知识(原理、结构和功能)...
  8. linux下安装minio
  9. Harmony OS — TimePicker时间选择器
  10. Mac版Python3安装/升级
  11. 互联网+创新创业大赛项目计划书,个人原创你学会了吗?
  12. P问题、NP问题、NPC问题
  13. 安装SQL Server 2012时报.net framework 3.5错误
  14. 转 爬虫与反爬虫套路
  15. 华为防火墙笔记-出口选路
  16. 基于JavaWeb的果蔬生鲜交易系统
  17. Excel 两列合并为一列中间加空格
  18. 百趣代谢组学资讯:@熬夜的年轻人代谢紊乱急救包-喝普洱茶!
  19. CPU也能速刷AlphaFold2?英特尔:请收下这份23倍通量优化指南
  20. Mac宝藏软件推荐(笔者也在用)(二)

热门文章

  1. 能推荐个好用的日程管理app吗?能跨平台管理日程的便签APP
  2. 关于Kaa物联网的概述
  3. 莫得克和埃克特研制的存储计算机名称,莫得克和埃克特研制的存储计算机名称指的是什么...
  4. 职称计算机考试在线答题,职称计算机考试试题答题技巧
  5. 武大计算机考研拟录取名单,2021武汉大学考研拟录取名单已公布
  6. win10系统打开chrome浏览器几秒后自动闪退
  7. 【ShaderLab】Phong与Blinn-Phong两个光照模型的理解
  8. 多版本Visual Studio 集成环境下的WCF 开发-服务库默认配置表
  9. Heartbleed第一篇:“心脏流血”高危漏洞情况通报(4月9日结果)
  10. 502粘到手上变硬了怎么办_手指被502粘住 千万别硬扯 聪明人都滴点它 ~