本帖最后由 lijin671 于 2024-3-27 10:04 编辑
import os
from aip import AipOcr
import base64
import urllib
import requests
# Poppler 路径
poppler_path = r'D:\project\pythonProject\poppler23.11.0\Library\bin'
# 初始化百度OCR
APP_ID = 'your_app_id' #替换成你的app_id
API_KEY = 'your_api_key' #替换成你的api_key
SECRET_KEY = 'your_secret_key' #替换成你的secret_key
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
def main():
url = "https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting?access_token=" + get_access_token()
# PDF 文件夹路径
pdf_path = './'
for filename in os.listdir(pdf_path):
if filename.endswith('.pdf'):
pdf_folder = os.path.join(pdf_path, filename)
pdf_base64 = get_file_content_as_base64(pdf_folder, True)
payload = f'pdf_file={pdf_base64}&detect_direction=false&probability=false'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
if response.status_code == 200:
result = response.json()
if 'words_result' in result:
text = result['words_result'][8]['words']
# 根据识别的文字进行文件重命名等操作
# 这里可以根据具体的识别结果进行相应的处理,例如提取姓名后进行文件重命名等操作
print(f"识别到的文字为:{text}")
file_path, file_ext = os.path.splitext(pdf_folder)
new_file_path = f"{text}" + file_ext
os.rename(pdf_folder, new_file_path)
print(f"文件已重命名为:{new_file_path}")
else:
print("未能识别到文字")
else:
print(f"请求失败: {response.text}")
def get_file_content_as_base64(path, urlencoded=False):
"""
获取文件base64编码
:param path: 文件路径
:param urlencoded: 是否对结果进行urlencoded
:return: base64编码信息
"""
with open(path, "rb") as f:
content = base64.b64encode(f.read()).decode("utf8")
if urlencoded:
content = urllib.parse.quote_plus(content)
return content
def get_access_token():
"""
使用 AK,SK 生成鉴权签名(Access Token)
:return: access_token,或是None(如果错误)
"""
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
if __name__ == '__main__':
main()
将代码复制并进行对应的修改,可通过pyinstaller -F -c xxx.py #xxx.py
更改为你的py文件
将py文件打包成可执行的exe文件,然后放入pdf文件目录下,双击运行即可。这里用的是百度智能云识别。
###2024/03/26更新
稍微改了下,做了三个参数,在弹窗让你输入,用法的话,还是放进你要识别手写的PDF路径中,不过这个因为是给人事同事用的,用来识别合同pdf然后重命名,所以其实不一定是适合你的情况,识别出来的列表不一定是一样的,可能需要调整,所以我把源代码也放进来,你们可以自己调整words_result识别的结果。
##又做了调整,直接把结果集下标也做了弹窗输入,你可以在百度智能云控制台 (baidu.com)这里调试一下你要识别的结果是第几个,然后在弹窗中的小标栏里输入即可。
###2024/03/27上班摸鱼,又浅浅修改了一下,将pdf路径也加进了弹窗,可以不用将exe文件放进要修改的pdf里面了,不过因为早上来摸鱼改了,改的并不多就是了,不过要注意,修改后的pdf会移动到你exe当前路径下,后续有空摸鱼的时候也添加个路径输入框吧。成品exe放在下面链接中:ocr_text_new.exe
https://wwm.lanzout.com/b0538flqj 密码:2s8i
|