当前位置:  开发笔记 > 编程语言 > 正文

PDF Miner PDFEncryptionError

如何解决《PDFMinerPDFEncryptionError》经验,为你挑选了1个好方法。

我正在尝试从pdf文件中提取文本,然后尝试识别引用.我正在使用pdfminer 20140328.使用未加密的文件,它运行良好,但我现在得到一个文件,我得到:

_initialize_password中的文件"C:\ Tools\Python27\lib\site-packages\pdfminer\pdfdocument.py",第348行

提出PDFEncryptionError('未知算法:param =%r'%param)

pdfminer.pdfdocument.PDFEncryptionError:未知算法:param = {'CF':{'StdCF':{'长度':16,'CFM':/ AESV2,'AuthEvent':/ DocOpen}},'O':'}\xe2>\xf1\xf6\xc6\x8f\xab\x1f"O\x9bfc\xcd\x15\xe09~2\xc9 \\ x87\x03\xaf\x17f>\x13\t ^ K\x99','过滤':/标准,'P': - 1548,'长度':128,'R':4,'U':'Kk>\x14\xf7\xac\xe6\x97\xb35\xaby!\ x04 |\x18(\ xbfN ^ Nu\x8aAd\x00NV\xff\xfa\x01\x08','V':4,'StmF':/ StdCF,'StrF':/ StdCF}

我检查了pdfinfo,这个文件似乎是AES加密的,但我可以毫无问题地打开它.所以我有两个问题:

首先:如何加密文档但我可以在没有密码的情况下打开它?

其次:我如何使PDFMiner正确读取该文件?在某处我读安装pycrypto以获得额外的算法,但它并没有解决我的问题.

非常感谢.



1> 小智..:

我对一些文件也有同样的问题.看起来文档已加密,但密码为空.这就是我们可以在没有密码的情况下轻松打开它的原因.

我最终用Ubuntu的qpdf实用程序解决了这个问题.如果您提供密码,它可以解密文件(在我的情况下为空).我在Python脚本中实现了一个shell命令,该命令将使用空密码解密文档:

from subprocess import call
call('qpdf --password=%s --decrypt %s %s' %('', pdf_filename, pdf_filename_decr), shell=True)

哪里

`pdf_filename` - filename of encrypted pdf,
`pdf_filename_decr` - filename of a new decrypted copy.

pdfminer现在应该提取文本.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有