Enregistrer en format pdf une fenetre tkinter Python
Résolujouflu -
Bonjour,
Je voudrais associer à la commande "print" dans le menu_bar, une fonction permettant d'enregistrer au format pdf dans les dossiers la "capture d'écran" ou (même si j'imagine que c'est beaucoup plus compliqué pour mon niveau amateur), une feuille pdf avec les informations suivantes :
- URL,
- Nom,
- date,
- Qr code.
J'aimerais pouvoir coder cette dernière, mais je ne sais pas comment faire. Voici mon code actuel :
from tkinter import * import qrcode from tkinter import filedialog from tkinter import messagebox import webbrowser import os window = Tk() def getEntry(): res = URL_1.get() print(res) img = qrcode.make(res) img.save(name_url.get() + ".png") def clear(): URL_1.delete("0","end") name_url.delete("0","end") def window_quit(): window.destroy() def open_module(): filename = filedialog.askopenfilename(initialdir = "/", title = "Select a File", filetypes = (("Text files", "*.txt*"), ("all files", "*.*"))) label_file_explorer.configure(text="File Opened: "+filename) def show_qrcode(): img = qrcode.make(URL_1.get()) img_name = name_url.get() + ".png" img.save(img_name) pimg = PhotoImage(file=img_name) qrcode_label.qrcode_img = pimg qrcode_label['image'] = pimg def help_training(): webbrowser.open_new("file:///D:/Qr%20Code/training%20help.html") window.title("QR Code Generator") window.geometry("800x600") window.config(background="blue") window.iconbitmap("D:/Qr Code/logo.ico") label_title = Label(window, text="QR Code Generator", font=("Arial", 20), bg="blue", fg="white") label_title.pack() # créer une entrée pr donner l'URL URL_label = Label(window, text = "URL : ", font=("Arial", 10), bg="blue") URL_label.place( x = 50, y = 50) URL_1 = Entry(window) URL_1.place(x = 50, y = 80) # créer une entrée pr donner le nom du QR Code name_label = Label(window, text = "URL's name :", font=("Arial", 10), bg="blue") name_label.place( x = 50, y = 110) name_url = Entry(window) name_url.place(x = 50, y = 140) Button_Confirm = Button(window, height=1, width=10, text="Confirm", command=show_qrcode) Button_Confirm.place(x = 50, y = 190) qrcode_label = Label(window, bg="blue") qrcode_label.place(x=450, y=80) # créer un menu menu_bar = Menu(window) file_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="File", menu=file_menu) file_menu.add_command(label="New", command=clear) file_menu.add_command(label="Print", command=#c est ici que doit être le bouton) options_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="Options", menu=options_menu) options_menu.add_command(label="Quit", command=window_quit) help_menu = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label="Help", menu=help_menu) help_menu.add_command(label="Training", command=help_training) #config fenetre pour add menu bar window.config(menu=menu_bar) window.mainloop()
Merci pour votre aide si précieuse.
Cordialement
Windows / Firefox 108.0
- Tkinter pdf français
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Mode d'emploi en français gratuit pdf - Guide
- Télécharger dictionnaire français gratuit pdf - Télécharger - Dictionnaires & Langues
- Save as pdf office 2007 - Télécharger - Bureautique
3 réponses
Bonjour,
En réponses aux message #1 et #6.
Pour commencer, il faut que ton menu File > print appelle une fonction (disons print_pdf)
file_menu.add_command(label="Print", command=print_pdf)
Il faut ensuite créer le fichier pdf. C'est là que le module fpdf qu'yg_be propose (voir message #2), ou tout autre module équivalent, peut entrer en jeu pour générer ton fichier pdf. Tu peux regarder ce tutoriel pour démarrer, qui montre comment créer un fichier pdf impliquant du texte avec un logo (dans ton cas ce pourrait être le QR code).
Quand elle est déclenchée, la fonction print_pdf déclenche les opérations suivantes :
- Récupérer les informations saisies par l'utilisateur
- Générer le QR code
- Créer le fichier pdf, dans lequel on écrit le QR code et le texte désiré
Bonne chance
bonjour,
Tu nous montres un code Python. Il fonctionne bien? As-tu une question à ce propos?
Tu mentionnes "menu_bar": de quoi s'agit-il?
Tu mentionnes "URL, Nom, date, et le Qr code": quel url, quel nom, quelle date, quel QR code?
Salut, avec fpdf.
.
https://pypi.org/project/fpdf2/
.
C'est la bibliothèque pdf la plus imple à utiliser, générer une page avec 3 lignes de texte et une image ne devrait pas être trop complexe à réaliser.
.
Mais autant générer une simple image pour si peu de choses à mettre dans ton pdf, tu peux déjà de base avec tkinter générer un postscript, et si tu as besoin d'un autre format, alors pillow sera nécessaire.
Merci.
Mais en fait, je ne sais pas si vous avez essayé le script.
Protocole :
- On rentre l'URL et son nom
- Le QR Code s'affiche dans la fenêtre Tkinter ET s'enregistre dans l'explorateur de fichiers.
- De plus, j'aimerais que si on le demande à l'aide de la commende Print dans le menu_bar, un PDF s'enregsitre avec écrit l'URL, son nom, et le Qr code.
Or si vous avez d'autres solutions similaires, je suis preneur !
Merci,
cdt
Bonjour GEEK3_3843.
.
Les commandes ?
Quelles commandes ?
.
Tu installes fpdf2 avec pip, puis tu suis les rapides et succincts didacticiels de manipulations de cette bibliothèque. Il n'y a pas de commandes magiques pour générer un pdf avec le conenu que tu désires. Programmer, c'est aussi apprendre à installer des bibliothèques, apprendre à s'en servir, savoir lire de la documentation, surtout ça, il faut s'en manger énormément.
.
Bonne continuation.
Merci !
Je vais essayer mais je pense que cela correspond à ma requête.
Cdt
J'ai donc essayé, un bon début.
Mais je ne trouve pas quel est la ligne pour ajouter une image dans le pdf. Pouvez vous me l'indiquer ?
Cdt
Bonsoir.
Avec la méthode image.
https://pyfpdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.image