def getTextPDF(pdfFileName, password=''): pdf_file = open(pdfFileName, 'rb') read_pdf = PdfFileReader(pdf_file) if password != '': read_pdf.decrypt(password) text = [] for i in range(0, read_pdf.getNumPages() - 1): text.append(read_pdf.getPage(i).extractText()) #return '\n'.join(text) return text
def decrypt(input, output, password, verbosity, **kwargs): """decrypt pdf. pdfcli decrypt crypted.pdf -o clear.pdf -p password """ source = PdfFileReader(input) source.decrypt(password) output_pdf = PdfFileWriter() for page in source.pages: output_pdf.addPage(page) if verbosity >= 1: click.echo("Writing %s" % output.name) output_pdf.write(output)
def _load(self): with open(self.path, 'rb') as file: try: pdf = PdfFileReader(file) if pdf.isEncrypted: # See https://github.com/mstamy2/PyPDF2/issues/51 # Some PDFs that open fine without a password in many apps, apparently # have a password of an empty string pdf.decrypt('') self._meta = { k: _resolve_object(v) for k, v in (pdf.getDocumentInfo() or {}).items() } except Exception as e: raise ParseError('Cannot parse PDF', self.path, e)
def decrypt_pdf(input_file: str, password: str): """ Decrypts a file using PyPDF4 library. Precondition: A file is already encrypted """ pdf_reader = PdfFileReader(open(input_file, 'rb'), strict=False) if not pdf_reader.isEncrypted: print(f"PDF File {input_file} not encrypted") return False, None, None pdf_reader.decrypt(password=password) pdf_writer = PdfFileWriter() try: for page_number in range(pdf_reader.numPages): pdf_writer.addPage(pdf_reader.getPage(page_number)) except utils.PdfReadError as e: print(f"Error reading PDF File {input_file} = {e}") return False, None, None return True, pdf_reader, pdf_writer
def get_reader(filename, password): try: old_file = open(filename, 'rb') print("第一次解密") except Exception as err: print("打开失败" + str(err)) return None pdf_reader = PdfFileReader(old_file, strict=False) # 这个strict是确定是否应该警告用户所用的问题,也导致一些可纠正的问题是致命的,默认是true # 这个是创建读的实例 # 下面是解密操作 if pdf_reader.isEncrypted: if password is None: print("文件被加密需密码") return None else: if pdf_reader.decrypt(password) != 1: print("密码不正确") return None if old_file in locals(): old_file.close() return pdf_reader
def get_reader(filename, password): try: old_file = open(filename, 'rb') print('run jiemi1') except Exception as err: print('文件打开失败!' + str(err)) return None # 创建读实例 pdf_reader = PdfFileReader(old_file, strict=False) # 解密操作 if pdf_reader.isEncrypted: if password is None: print('%s文件被加密,需要密码!' % filename) return None else: if pdf_reader.decrypt(password) != 1: print('%s密码不正确!' % filename) return None if old_file in locals(): old_file.close() return pdf_reader