Bonjour
J'apprends le dév avec Python. J'ai créé un outil avec interface graphique en tkinter. Cela me permet de générer des demandes de réparation pour une société de maintenance avec un QRCODE et un document récapitulant les éléments de la demande pour le technicien. Une fois la demande remplie, j'enregistre le fichier en pdf.
J'arrive à faire cela. Cependant, dès lors que j'ouvre une deuxième demande de réparation depuis ma page principale, au moment de valider l'enregistrement j'ai ceci comme erreur :
J'ai lu le code de reportab et je comprends que je ne peux pas générer 2 fichiers PDF avec la même instance tkinter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.8/tkinter/__init__.py", line 1883, in __call__ return self.func(*args) File "/home/xxx/Documents/python/travail-python/reptravail/di2.py", line 492, in valider recup_valeur() File "/home/xxx/Documents/python/travail-python/reptravail/di2.py", line 473, in recup_valeur creerpdf.genererpdf (originefinal, sitefinal, unitefinal, entreeUnfinal, entreeDeuxfinal, entreeTroisfinal, codematfinal, quantitefinal, entreeCinqfinal, remarquefinal) File "/home/xxx/Documents/python/travail-python/reptravail/creerpdf.py", line 178, in genererpdf pdf.save() File "/home/xxx/.local/lib/python3.8/site-packages/reportlab/pdfgen/canvas.py", line 1244, in save self._doc.SaveToFile(self._filename, self) File "/home/xxx/.local/lib/python3.8/site-packages/reportlab/pdfbase/pdfdoc.py", line 207, in SaveToFile raise RuntimeError("class %s instances can only be saved once" % self.__class__.__name__) RuntimeError: class PDFDocument instances can only be saved once
J'ai pourtant ma demande qui, une fois rappelée, est vide.
La seule solution est de fermer complètement mon programme. Ce n'est pas pratique si on a plusieurs demandes à faire.
Si quelqu'un aurait une solution pour vider l'instance tkinter.
Je précise que :
sont bien présents mais cela ne marche pas. Il me semblait que pdf.showPage() réinitialisait la page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pdf.showPage() pdf.save()
Merci pour votre aide, car là je cale
Partager