File size: 2,411 Bytes
ef81ad8
 
 
c3883a9
 
 
 
ef81ad8
0e66c2e
c3883a9
ef81ad8
 
 
 
 
 
 
 
c3883a9
ef81ad8
 
 
c3883a9
ef81ad8
 
 
 
 
 
c3883a9
ef81ad8
 
 
 
612150f
ef81ad8
 
 
612150f
ef81ad8
 
 
 
 
612150f
ef81ad8
 
 
 
612150f
ef81ad8
 
 
612150f
ef81ad8
 
 
 
 
612150f
c3883a9
ef81ad8
612150f
ef81ad8
 
 
612150f
ef81ad8
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from flask import Flask, send_file, jsonify
import fitz  # PyMuPDF pour manipuler le PDF
import tempfile
import os

app = Flask(__name__)

# Chemin vers le PDF source
PDF_FILE = "yipunu.pdf"

# Fonction pour générer une image temporaire d'une page du PDF
def generate_temp_image(page_number, dpi):
    try:
        # Ouvre le PDF
        with fitz.open(PDF_FILE) as doc:
            # Vérifie que le numéro de page est valide
            if page_number < 1 or page_number > len(doc):
                raise ValueError(f"Numéro de page invalide : {page_number}")

            # Extrait la page et génère une image
            page = doc[page_number - 1]
            pixmap = page.get_pixmap(dpi=dpi)

            # Crée un fichier temporaire pour stocker l'image
            temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".jpg")
            pixmap.save(temp_file.name)
            return temp_file.name
    except Exception as e:
        raise RuntimeError(f"Erreur lors de la génération de l'image : {e}")

# Endpoint pour récupérer une image basse résolution
@app.route("/low_res/<int:page_number>")
def get_low_res(page_number):
    temp_path = None
    try:
        # Génère une image basse résolution
        temp_path = generate_temp_image(page_number, dpi=72)
        return send_file(temp_path, mimetype="image/jpeg")
    except Exception as e:
        return jsonify({"error": str(e)}), 500
    finally:
        # Supprime le fichier temporaire après utilisation
        if temp_path and os.path.exists(temp_path):
            os.remove(temp_path)

# Endpoint pour récupérer une image haute résolution
@app.route("/high_res/<int:page_number>")
def get_high_res(page_number):
    temp_path = None
    try:
        # Génère une image haute résolution
        temp_path = generate_temp_image(page_number, dpi=300)
        return send_file(temp_path, mimetype="image/jpeg")
    except Exception as e:
        return jsonify({"error": str(e)}), 500
    finally:
        # Supprime le fichier temporaire après utilisation
        if temp_path and os.path.exists(temp_path):
            os.remove(temp_path)


from flask import render_template

@app.route("/viewer")
def viewer():
    return render_template("viewer.html")  # Assurez-vous que viewer.html est dans le dossier templates/

# Point d'entrée de l'application
if __name__ == "__main__":
    app.run(debug=True)