-
Notifications
You must be signed in to change notification settings - Fork 0
/
desbloquear_pdfs.py
40 lines (27 loc) · 1.41 KB
/
desbloquear_pdfs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import fitz # PyMuPDF
import os
def desbloquear_pdf(caminho_arquivo_entrada, senha, caminho_arquivo_saida):
try:
pdf_documento = fitz.open(caminho_arquivo_entrada)
except RuntimeError:
print(f"Não foi possível abrir o PDF {caminho_arquivo_entrada}. Talvez o arquivo esteja corrompido ou o caminho seja inválido.")
return
if pdf_documento.is_encrypted:
desbloqueado = pdf_documento.authenticate(senha)
if desbloqueado:
pdf_documento.save(caminho_arquivo_saida)
print(f"PDF desbloqueado salvo como {caminho_arquivo_saida}")
else:
print(f"Senha incorreta para o PDF {caminho_arquivo_entrada}. Não foi possível desbloquear o PDF.")
else:
print(f"O PDF {caminho_arquivo_entrada} não está criptografado.")
def desbloquear_multiplos_pdfs(diretorio_entrada, senha, diretorio_saida):
lista_arquivos = [os.path.join(diretorio_entrada, arquivo) for arquivo in os.listdir(diretorio_entrada) if arquivo.endswith('.pdf')]
for caminho_arquivo in lista_arquivos:
nome_arquivo = os.path.basename(caminho_arquivo)
caminho_arquivo_saida = os.path.join(diretorio_saida, nome_arquivo)
desbloquear_pdf(caminho_arquivo, senha, caminho_arquivo_saida)
diretorio_entrada = "arquivos_pdf"
diretorio_saida = "saida"
senha = "senha321"
desbloquear_multiplos_pdfs(diretorio_entrada, senha, diretorio_saida)