Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import os | |
| import base64 | |
| import pdfplumber | |
| st.title("PDF Table Extractor") | |
| input_pdf = st.file_uploader(label="Upload PDF here", type='pdf') | |
| st.markdown("### Page Number") | |
| page_number = st.text_input("Enter the page # from where you want the table", value='1') | |
| if input_pdf is not None: | |
| with open("input.pdf", "wb") as f: | |
| base64_pdf = base64.b64encode(input_pdf.read()).decode('utf-8') | |
| f.write(base64.b64decode(base64_pdf)) | |
| pdf = pdfplumber.open("input.pdf") | |
| num_pages = len(pdf.pages) | |
| if not page_number.isdigit() or int(page_number) <= 0 or int(page_number) > num_pages: | |
| st.error(f"Invalid page number. Please enter a number between 1 and {num_pages}.") | |
| else: | |
| page = pdf.pages[int(page_number) - 1] | |
| tables = page.extract_tables() | |
| st.markdown("## Number of Tables") | |
| st.write(len(tables)) | |
| if tables: | |
| option = st.selectbox(label="Select the table to be displayed", options=list(range(1, len(tables) + 1))) | |
| st.markdown("### Output Table") | |
| st.dataframe(tables[option - 1]) | |
| pdf.close() | |