Spaces:
Sleeping
Sleeping
import streamlit as st | |
import PyPDF2 | |
import pytesseract | |
from PIL import Image | |
from pdf2image import convert_from_path | |
def pdf_to_text(pdf_file): | |
# Open the PDF file | |
pdf = PyPDF2.PdfReader(pdf_file) | |
# Extract the text from each page | |
text = '' | |
for page in pdf.pages: | |
text += page.extract_text() | |
# If the text is empty, use OCR to extract the text | |
if not text: | |
# Convert the PDF to images | |
images = convert_from_path(pdf_file) | |
# Perform OCR on each image | |
for image in images: | |
text += pytesseract.image_to_string(image) | |
return text | |
def main(): | |
st.title("PDF Text Extractor") | |
st.write("Upload a PDF file to extract the text") | |
pdf_file = st.file_uploader("Upload PDF file", type=["pdf"]) | |
if pdf_file is not None: | |
text = pdf_to_text(pdf_file) | |
txt_file = pdf_file.name.replace('.pdf', '.txt') | |
with open(txt_file, 'w') as f: | |
f.write(text) | |
with open(txt_file, "rb") as file: | |
btn = st.download_button( | |
label="Download Extracted Text", | |
data=file, | |
file_name=txt_file, | |
mime="text/plain" | |
) | |
if __name__ == "__main__": | |
main() | |