Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,38 +1,55 @@
|
|
|
|
1 |
import PyPDF2
|
2 |
import json
|
3 |
|
|
|
4 |
def extract_text_from_pdf(pdf_path):
|
5 |
-
"""
|
6 |
-
Extrait le texte de chaque page du fichier PDF spécifié et retourne
|
7 |
-
une liste de dictionnaires avec le numéro de page et le texte.
|
8 |
-
|
9 |
-
:param pdf_path: Chemin vers le fichier PDF à lire.
|
10 |
-
:return: Liste de dictionnaires contenant le numéro de page et le texte extrait.
|
11 |
-
"""
|
12 |
text = []
|
13 |
with open(pdf_path, 'rb') as file:
|
14 |
pdf_reader = PyPDF2.PdfReader(file)
|
15 |
-
# Utilisation de l'index de la boucle pour obtenir le numéro de page
|
16 |
for i, page in enumerate(pdf_reader.pages):
|
17 |
text.append({"page": i + 1, "text": page.extract_text()})
|
18 |
return text
|
19 |
|
|
|
20 |
def save_text_to_json(data, output_file):
|
21 |
-
"""
|
22 |
-
Sauvegarde les données fournies dans un fichier JSON.
|
23 |
-
|
24 |
-
:param data: Données à sauvegarder (liste de dictionnaires).
|
25 |
-
:param output_file: Chemin du fichier JSON de sortie.
|
26 |
-
"""
|
27 |
with open(output_file, 'w', encoding='utf-8') as f:
|
28 |
json.dump(data, f, ensure_ascii=False, indent=4)
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
# Chemin vers le fichier PDF et le fichier JSON de sortie
|
31 |
pdf_path = 'data/07-VF2_UDM_Oneframe_A4-2023.pdf'
|
32 |
json_output_path = 'data/extracted_text.json'
|
33 |
|
34 |
-
#
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
import PyPDF2
|
3 |
import json
|
4 |
|
5 |
+
# Fonction pour extraire le texte du PDF
|
6 |
def extract_text_from_pdf(pdf_path):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
text = []
|
8 |
with open(pdf_path, 'rb') as file:
|
9 |
pdf_reader = PyPDF2.PdfReader(file)
|
|
|
10 |
for i, page in enumerate(pdf_reader.pages):
|
11 |
text.append({"page": i + 1, "text": page.extract_text()})
|
12 |
return text
|
13 |
|
14 |
+
# Fonction pour sauvegarder le texte dans un fichier JSON
|
15 |
def save_text_to_json(data, output_file):
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
with open(output_file, 'w', encoding='utf-8') as f:
|
17 |
json.dump(data, f, ensure_ascii=False, indent=4)
|
18 |
|
19 |
+
# Fonction pour afficher le contenu du fichier JSON
|
20 |
+
def display_json_contents(file_path):
|
21 |
+
try:
|
22 |
+
with open(file_path, 'r', encoding='utf-8') as f:
|
23 |
+
data = json.load(f)
|
24 |
+
st.write(data)
|
25 |
+
except FileNotFoundError:
|
26 |
+
st.error(f"Le fichier {file_path} n'a pas été trouvé.")
|
27 |
+
|
28 |
+
# Interface Streamlit
|
29 |
+
st.title("Extracteur de Texte PDF et Sauvegarde en JSON")
|
30 |
+
|
31 |
# Chemin vers le fichier PDF et le fichier JSON de sortie
|
32 |
pdf_path = 'data/07-VF2_UDM_Oneframe_A4-2023.pdf'
|
33 |
json_output_path = 'data/extracted_text.json'
|
34 |
|
35 |
+
# Bouton pour lancer l'extraction et la sauvegarde
|
36 |
+
if st.button('Extraire le texte du PDF et sauvegarder en JSON'):
|
37 |
+
pdf_text = extract_text_from_pdf(pdf_path)
|
38 |
+
save_text_to_json(pdf_text, json_output_path)
|
39 |
+
st.success("Le texte a été extrait et sauvegardé.")
|
40 |
+
|
41 |
+
# Bouton pour afficher le contenu du fichier JSON
|
42 |
+
if st.button('Afficher le contenu JSON'):
|
43 |
+
display_json_contents(json_output_path)
|
44 |
|
45 |
+
# Option pour télécharger le fichier JSON
|
46 |
+
try:
|
47 |
+
with open(json_output_path, 'r', encoding='utf-8') as f:
|
48 |
+
download = st.download_button(
|
49 |
+
label="Télécharger le JSON",
|
50 |
+
data=f,
|
51 |
+
file_name="extracted_text.json",
|
52 |
+
mime="application/json"
|
53 |
+
)
|
54 |
+
except FileNotFoundError:
|
55 |
+
st.error(f"Le fichier {json_output_path} n'est pas disponible pour téléchargement.")
|