图片,PDF转换成文字

这是一个结合了百度OCR和PDF转换技术的小工具,能够将图片和PDF文件转换为文字。功能包括图片转文字、PDF逐页转图片再识字。使用了Python的Tkinter库进行界面设计,并利用pyperclip模块实现文字复制到剪贴板的功能。
摘要由CSDN通过智能技术生成

图片,PDF转换成文字小工具

本想实现微信小程序“传图识字”的功能,后面又添加了pdf文件转文字。

知识点

  • 百度OCR文字识别
from aip import AipOcr

APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
image = get_file_content(r'D:\Python\study\image\d2.png')

""" 调用通用文字识别, 图片参数为本地图片 """
content = client.basicGeneral(image)['words_result']
# print(len(content))
for co in content:
    print(co['words'])


# """ 如果有可选参数 """
# options = {}
# options["language_type"] = "CHN_ENG"
# options["detect_direction"] = "true"
# options["detect_language"] = "true"
# options["probability"] = "true"
  • PDF 逐页转换成图片
import fitz
import glob

def read_pdf(filename):
    pdffile = glob.glob(filename)[0]
    doc = fitz.open(pdffile)
    for pg in range(0, doc.pageCount):
        page = doc[pg]
        zoom = int(100) # 改为1000,图片清晰度会更高
        rotate = int(0)
        trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
        pm = page.getPixmap(matrix=trans,alpha=True) # True 改为 0
        pm.writePNG(r'D:\Python\study\image\%s.png' % str(pg+1))

read_pdf(r'demo.pdf')

安装pyperclip模块 pip intall pyerclip
pyperclip.copy(text) 把text字符串中的字符复制到剪切板
text = pyperclip.paste() 把剪切板上的字符串复制到text

  • 将py文件打包成 exe

切换到py文件目录
pyinstall -F -i KEY.ico tkinterTest.py -w
-w :关闭DOC控制台
-i : 替换exe图标

  • 小工具截图
    在这里插入图片描述

小工具源码

from tkinter import *
import tkinter.filedialog
import datetime
from tkinter import messagebox
import filetype
import os
from aip import AipOcr
import fitz
import glob
from pathlib import Path
import time
import pyperclip

def copy():
    '''
    实现复制按钮功能,复制到剪贴板
    :return:
    '''
    pyperclip.copy(text.get('0.0', 'end'))

def filepath():
    '''
    实现选择文件或目录按钮功能,选择图片或PDF弹出选择文件选择框,
    选择批量图片,弹出选择目录框
    :return:
    '''
    if r.get()==1 or r.get() == 2 :
        filename = tkinter.filedialog.askopenfilename()
        if filename != '':
            e.set(filename)
        else:
            e.set("")
    else:
        filename  = tkinter.filedialog.askdirectory()
        if filename != '
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值