pdf文件加密学习起,pdf 中图片如何提取文本

一、提出问题

在我们的工作中,有时候上级让下级将盖章的文件生成PDF文件通过内部平台发送到上级邮箱,那如何解决呢?是去找一个扫描仪,还是用手机拍图转。用Python基实就能实现。

二、分析问题

现在网上好多的软件都是收费的,转pdf,如何查看文件是否加密,对于图片如何识别文本。

三、docx2pdf模块的使用

1.安装模块

pip install docx2pdf

2.介绍

pdf2docx 是一个Python模块,可以用来将PDF文件转换成Word文档。它是基于Python的pdfminer和python-docx库开发的,可以在Windows、Linux和Mac系统上运行。

四、案例分析

复制代码
import docx2pdf
import os
import PyPDF2

pdf_path = "C:\\Users\\lenovo\\Desktop\\test\\"
files = []
for file in os.listdir(pdf_path):
    if file.endswith(".docx"):
        files.append(pdf_path+file)
        print(files)
for file in files:
    print(file)
    docx2pdf.convert(str(file))
    file_name=file.split(".")[0]
    print(f"{file_name}转换成功!")



for file in os.listdir(pdf_path):
    if file.endswith(".pdf"):
        files.append(pdf_path + file)
        for file in files:
            outfile=file.split('.')[0]+'加密.pdf'

            with open(file, 'rb') as f:
                pdf = PyPDF2.PdfReader(f)
                print(pdf)
                if pdf.is_encrypted:
                    print(f"{file}是加密文件" )
                else:
                    print(f"{file}不是加密文件")
                write = PyPDF2.PdfWriter()
                for i in range(len(pdf.pages)):
                    write.add_page(pdf.pages[i])
                write.encrypt(user_password='123456',owner_pwd="qwerty", use_128bit=True)
                with open('out_file4.pdf',"wb") as f:
                     write.write(f)

五、如何识别图片中文本

复制代码
import tesseract
import os
from PIL import Image
imglist = []
pdf_path = "./"
for file in os.listdir(pdf_path):
    if file.endswith(".png"):
        imglist.append(pdf_path + file)
        print(imglist)
imgtext = []
for img in imglist:
    print(img)
    text = tesseract.image_to_string(Image.open(img))
    imgtext.append(text)
相关推荐
气概10 分钟前
法奥机器人学习使用
学习·junit·机器人
Qhumaing25 分钟前
C++学习:【PTA】数据结构 7-1 实验7-1(最小生成树-Prim算法)
c++·学习·算法
好大哥呀40 分钟前
Java Web的学习路径
java·前端·学习
梦雨羊3 小时前
Base-NLP学习
人工智能·学习·自然语言处理
丝斯20113 小时前
AI学习笔记整理(42)——NLP之大规模预训练模型Transformer
人工智能·笔记·学习
小猪佩奇TONY3 小时前
Linux 内核学习(14) --- linux x86-32 虚拟地址空间
linux·学习
副露のmagic3 小时前
更弱智的算法学习 day28
学习
ha20428941944 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
凉、介5 小时前
深入 QEMU Guest Agent:虚拟机内外通信的隐形纽带
c语言·笔记·学习·嵌入式·虚拟化
崇山峻岭之间5 小时前
Matlab学习记录31
开发语言·学习·matlab