使用pdfminer遇到的pdf文件加密问题:
raise PDFEncryptionError('Unknown algorithm: param=%r' % param)
pdfminer.pdfdocument.PDFEncryptionError: Unknown algorithm: param={'CF': {'StdCF': {'Length': 16, 'CFM': /AESV2, 'AuthEvent': /DocOpen}}, 'O': '}xe2>xf1xf6xc6x8fxabx1f"Ox9bfcxcdx15xe09~2xc9\x87x03xafx17f>x13 ^Kx99', 'Filter': /Standard, 'P': -1548, 'Length': 128, 'R': 4, 'U': 'Kk>x14xf7xacxe6x97xb35xaby!x04|x18(xbfN^Nux8aAdx00NVxffxfax01x08', 'V': 4, 'StmF': /StdCF, 'StrF': /StdCF}
原因:这个pdf文件有密码,但密码是空字符串,所以必须要解密一下才可以做解析
解决方案:
from subprocess import call # pdf_filename代表源文件路径, pdf_copy_filename代表解密后的文件路径, 密码为'' call('qpdf --password=%s --decrypt %s %s' % ('', pdf_filename, pdf_copy_filename), shell=True)
之后直接解析pdf_copy_filename文件即可!