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)
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
百事牛科技4 天前
保护文档安全:PDF限制功能详解与实操
windows·pdf
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。4 天前
2026.2.25监控学习
学习
im_AMBER4 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode