Spaces:
Running on Zero
Running on Zero
Download pdf_parser.py from TechKick/enterprise-ai-document-intelligence-platform: direct link, hf CLI and curl.
- Browser
- Download file 1.39 kB
-
https://huggingface.co/spaces/TechKick/enterprise-ai-document-intelligence-platform/resolve/main/pdf_parser.py
- Command line
-
hf download hf://spaces/TechKick/enterprise-ai-document-intelligence-platform/pdf_parser.py
-
curl -L -o pdf_parser.py https://huggingface.co/spaces/TechKick/enterprise-ai-document-intelligence-platform/resolve/main/pdf_parser.py
1.39 kB
| import os | |
| import shutil | |
| import fitz | |
| TEMP_DIR = os.path.join(os.path.dirname(__file__), "temp") | |
| def extract_text_from_pdf(pdf_path): | |
| doc = fitz.open(pdf_path) | |
| text = "" | |
| for page in doc: | |
| text += page.get_text() | |
| doc.close() | |
| return text | |
| def process_uploaded_pdfs(file_inputs): | |
| """ | |
| Saves uploaded PDF files to temp/, extracts text, | |
| combines content, and cleans up temp files. | |
| """ | |
| os.makedirs(TEMP_DIR, exist_ok=True) | |
| if file_inputs is None: | |
| return "" | |
| if isinstance(file_inputs, (str, bytes)): | |
| file_inputs = [file_inputs] | |
| combined_text = "" | |
| for file_item in file_inputs: | |
| file_path = getattr(file_item, "name", file_item) | |
| if not file_path or not os.path.exists(file_path): | |
| continue | |
| filename = os.path.basename(file_path) | |
| temp_file_path = os.path.join(TEMP_DIR, filename) | |
| # 1. Save / Copy to temp/ directory | |
| shutil.copy(file_path, temp_file_path) | |
| try: | |
| # 2. Extract text from temp PDF | |
| extracted = extract_text_from_pdf(temp_file_path) | |
| combined_text += f"\n--- Document: {filename} ---\n{extracted}\n" | |
| finally: | |
| # 3. Delete temporary file when session / extraction ends | |
| if os.path.exists(temp_file_path): | |
| os.remove(temp_file_path) | |
| return combined_text | |