Spaces:
Sleeping
Sleeping
import streamlit as st | |
from PyPDF2 import PdfReader, PdfWriter | |
from io import BytesIO | |
def remove_pdf_password(file, password): | |
try: | |
reader = PdfReader(file) | |
if reader.is_encrypted: | |
reader.decrypt(password) | |
writer = PdfWriter() | |
for page in reader.pages: | |
writer.add_page(page) | |
output = BytesIO() | |
writer.write(output) | |
output.seek(0) | |
return output | |
except Exception as e: | |
return str(e) | |
st.title("PDF Password Remover") | |
st.write("Upload a password-protected PDF and remove its password.") | |
# File upload | |
uploaded_file = st.file_uploader("Choose a PDF file", type=["pdf"]) | |
password = st.text_input("Enter the PDF password", type="password") | |
if uploaded_file and password: | |
if st.button("Remove Password"): | |
output = remove_pdf_password(uploaded_file, password) | |
if isinstance(output, BytesIO): | |
st.success("Password removed successfully!") | |
st.download_button( | |
label="Download PDF without Password", | |
data=output, | |
file_name="unlocked_pdf.pdf", | |
mime="application/pdf", | |
) | |
else: | |
st.error(f"Error: {output}") | |