PyPDF2中仍然存在“ PDF文件尚未解密”的问题

文卡塔克涅夫

使用PyPDF2读取PDF文件时出现以下错误

raise utils.PdfReadError("File has not been decrypted")
PdfReadError: File has not been decrypted

我一直在尝试通过python以编程方式阅读PDF文档。对于大多数PDF文件,它都可以正常工作,但对于少数几个,我会收到以下错误

raise utils.PdfReadError("File has not been decrypted")
PdfReadError: File has not been decrypted

我已经尝试过另一种stackoverflow解决方案的解决方案:PyPDF 2 Decrypt Not Working

上述问题的解决方案仍然没有解决我的问题

import os
import PyPDF2
from PyPDF2 import PdfFileReader

fp = open(filename)
pdfFile = PdfFileReader(fp)
if pdfFile.isEncrypted:
   try:
       pdfFile.decrypt('')
       print('File Decrypted (PyPDF2)')
   except:
       command = ("cp "+ filename +
        " temp.pdf; qpdf --password='' --decrypt temp.pdf " + filename
        + "; rm temp.pdf")
       os.system(command)
       print('File Decrypted (qpdf)')
       fp = open(filename)
       pdfFile = PdfFileReader(fp)
else:
    print('File Not Encrypted')

问题似乎不是文件名之间的空格或将密码设置为''。

不知何故无法解决此错误。任何帮助表示赞赏。谢谢。

我的代码:

import PyPDF2
import os
from os import listdir
from os.path import isfile, join

mypath='D:/POC PDF'
onlyfiles = [os.path.join(mypath, f) for f in os.listdir(mypath) if os.path.isfile(os.path.join(mypath, f))]
for file in onlyfiles:
    fileReader = PyPDF2.PdfFileReader(open(file,'rb'))
    countpage = fileReader.getNumPages()
    print(countpage)
文卡塔克涅夫

回答我自己的问题:感谢我的一个朋友,我找到了比PyPDF2更好的软件包。是PyMuPDF。这是一个示例实现

import fitz

def extractText(file): 
    doc = fitz.open(file) 
    text = []
    for page in doc: 
        t = page.getText().encode("utf8") 
        text.append(t)
    return text

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章