Spaces:
Sleeping
Sleeping
################################################### | |
# Import des bibliothèques | |
################################################### | |
import streamlit as st | |
import PyPDF2 | |
import json | |
import os | |
################################################### | |
# LES FONCTIONS DE CONVERSION PDF -> TEXTE -> JSON | |
################################################### | |
# Fonction pour extraire le texte du PDF | |
def extract_text_from_pdf(pdf_path): | |
text = [] | |
with open(pdf_path, 'rb') as file: | |
pdf_reader = PyPDF2.PdfReader(file) | |
for i, page in enumerate(pdf_reader.pages): | |
text.append({"page": i + 1, "text": page.extract_text()}) | |
return text | |
# Fonction pour sauvegarder le texte dans un fichier JSON | |
def save_text_to_json(data, output_file): | |
with open(output_file, 'w', encoding='utf-8') as f: | |
json.dump(data, f, ensure_ascii=False, indent=4) | |
# Fonction pour afficher le contenu du fichier JSON | |
def display_json_contents(file_path): | |
try: | |
with open(file_path, 'r', encoding='utf-8') as f: | |
data = json.load(f) | |
st.write(data) | |
except FileNotFoundError: | |
st.error(f"Le fichier {file_path} n'a pas été trouvé.") | |
################################################### | |
# INTERFACE | |
################################################### | |
# Interface Streamlit | |
st.title("Extracteur de Texte PDF et Sauvegarde en JSON") | |
# Chemin vers le fichier PDF et le fichier JSON de sortie | |
pdf_path = 'data/07-VF2_UDM_Oneframe_A4-2023.pdf' | |
json_output_path = 'data/extracted_text.json' | |
# Bouton pour lancer l'extraction et la sauvegarde | |
if st.button('Extraire le texte du PDF et sauvegarder en JSON'): | |
pdf_text = extract_text_from_pdf(pdf_path) | |
save_text_to_json(pdf_text, json_output_path) | |
st.success("Le texte a été extrait et sauvegardé.") | |
# Vérification de l'existence du fichier JSON et affichage du chemin absolu | |
if os.path.exists(json_output_path): | |
st.success(f"Le fichier {json_output_path} existe bien dans le répertoire data.") | |
st.write(f"Chemin absolu du fichier JSON : {os.path.abspath(json_output_path)}") | |
else: | |
st.error(f"Le fichier {json_output_path} n'a pas été trouvé dans le répertoire data.") | |
# Bouton pour afficher le contenu du fichier JSON | |
if st.button('Afficher le contenu JSON'): | |
display_json_contents(json_output_path) | |
# Option pour télécharger le fichier JSON | |
try: | |
with open(json_output_path, 'r', encoding='utf-8') as f: | |
download = st.download_button( | |
label="Télécharger le JSON", | |
data=f, | |
file_name="extracted_text.json", | |
mime="application/json" | |
) | |
except FileNotFoundError: | |
st.error(f"Le fichier {json_output_path} n'est pas disponible pour téléchargement.") | |