Equivalent print (console) pour impression papier sur Python

Bonjour,
Le problème pour moi pour l’instant, c’est pourvoir imprimer sur papier, remplacer le print (console) par une commande qui me permet d’imprimer sur papier au lieu de la console, je joint une partie du programme.

# afficher stat:
con = sqlite3.connect("credataordi.db")
cur = con.cursor()
print("Connexion reussie a sqlite")

cur.execute("select * from formordi")

rows = cur.fetchall()

if len(rows)!=0:
    for row in rows:
        print("Id : ",(row[0])),                  # id
        print("Nom : ",(row[1])),                 # Nom / cartemere
        print("Carte mère : ",(row[2])),          # cartemere
        print("Processeur :",(row[3])),           # Processeur
        print("Nomb coeurs : ",(row[4])),         # Coeurs
        print("Nombr threads : ",(row[5])),       # Threads
        print("Frequence : ",(row[6])),           # Frequence
        print("Socket : ",(row[7])),              # Socket
        print("Memoire ram : ",(row[8])),         # RAM
        print("Disk ssd : ",(row[9])),            # SSD
        print("Adresse MAC : ",(row[10])),        # AdresMac
        print("Carte graphique : ",(row[11])),    # Carte Graph.
        print("Memoire graphique :",(row[12])),   # Memoire graph.
        print("Chipset : ",(row[13])),            # Chipset
        print("Type stockage : ",(row[14])),      # Type stock.
        print("Système : ",(row[15])),            # System
        print("Remarque : ", (row[16])),          # Remarque
        print("**************************************")
        print()
        
con.commit()
con.close()
print("Fin")

qui fonctionne bien sur console.
cordialement
kyrob

En fait, tu peux rediriger la sortie de ton programme vers le fichier à imprimer en utilisant la commande suivant:

$ python3 tonScript.py > file.txt

Maintenant, si tu ouvre le fichier file.txt, tu verras le contenu affiché par print().

Bonjour Isaac,
j’ai pensée a ça, mais ce n’ai pas se que je souhaite, il y a 12 ordinateurs, je voudrais avoir possibilité de faire une fiche individuel ou le groupes.
Pour l’instant le groupe de 12 ordinateurs sort d’un coup de ce coté la pas de problème, je me souvient il y a 40 ans en Basic il suffise de mettre LPRINT pour imprimer par l’imprimante je croit !.
Cette page fait partie d’un groupe.
voici le listing complet de la partie impression.

from tkinter import ttk, messagebox
import sqlite3
from os import startfile
import os

print("debut")

# afficher stat:
con = sqlite3.connect("credataordi.db")
cur = con.cursor()
print("Connexion reussie a sqlite")

cur.execute("select * from formordi")

rows = cur.fetchall()

if len(rows)!=0:
    for row in rows:
        print("Id : ",(row[0])),                  # id
        print("Nom : ",(row[1])),                 # Nom / cartemere
        print("Carte mère : ",(row[2])),          # cartemere
        print("Processeur :",(row[3])),           # Processeur
        print("Nomb coeurs : ",(row[4])),         # Coeurs
        print("Nombr threads : ",(row[5])),       # Threads
        print("Frequence : ",(row[6])),           # Frequence
        print("Socket : ",(row[7])),              # Socket
        print("Memoire ram : ",(row[8])),         # RAM
        print("Disk ssd : ",(row[9])),            # SSD
        print("Adresse MAC : ",(row[10])),        # AdresMac
        print("Carte graphique : ",(row[11])),    # Carte Graph.
        print("Memoire graphique :",(row[12])),   # Memoire graph.
        print("Chipset : ",(row[13])),            # Chipset
        print("Type stockage : ",(row[14])),      # Type stock.
        print("Système : ",(row[15])),            # System
        print("Remarque : ", (row[16])),          # Remarque
        print("**************************************")
        print()
        
con.commit()
con.close()
print("Fin")

Il y a t’il une commande ou un ensemble de commande qui le permet
merci d’avance ,
cordialement
kyrob

résultat :

Id :  13
Nom :  MSI
Carte mère :  MSI MS-16R6
Processeur : Intel
Nomb coeurs :  6
Nombr threads :  12
Frequence :  2,70 Ghz
Socket :
Memoire ram :  16 Go
Disk ssd :  476GB KINGSTON OM8PDP3512B-AI1/894GB EMTEC X150 960GB
Adresse MAC :  D4-54-8B-F4-5B-0A
Carte graphique :  Intel UHD Graphics (MSI)
Memoire graphique : 4095 Mo
Chipset :  ID9A26
Type stockage :  SSD M2 + SSD
Système :  Windows 10 Pro
Remarque :  Perso jacky portable

Si j’ai bien compris, tu veux envoyer le résultat directement à l’imprimant, donc tu dois utiliser le module win32print:

import os, sys  
import win32print

printer_name = win32print.GetDefaultPrinter()  #récupére le nom de l'imprimante par défaut
myPrinter = win32print.OpenPrinter (printer_name)  #préparer l'imprimante

# ton code............

rows = cur.fetchall()

if len(rows)!=0:
    for row in rows:
        data = "Id : " + row[0]                  # id
        data += "Nom : " + row[1]                 # Nom / cartemere
        data += "Carte mère : " + row[2]          # cartemere
        data += "Processeur :" + row[3]           # Processeur
        data += "Nomb coeurs : " + row[4]         # Coeurs
        data += "Nombr threads : " + row[5]       # Threads
        data += "Frequence : " + row[6]           # Frequence
        data += "Socket : " + row[7]              # Socket
        data += "Memoire ram : " + row[8]         # RAM
        data += "Disk ssd : " + row[9]            # SSD
        data += "Adresse MAC : " + row[10]        # AdresMac
        data += "Carte graphique : " + row[11]    # Carte Graph.
        data += "Memoire graphique :" + row[12]   # Memoire graph.
        data += "Chipset : " + row[13]            # Chipset
        data += "Type stockage : " + row[14]      # Type stock.
        data += "Système : " + row[15]            # System
        data += "Remarque : " + row[16]          # Remarque
        data += "**************************************"

try:
    win32print.StartPagePrinter (myPrinter)
    win32print.WritePrinter (myPrinter, data)  #écrire data dans l'imprimante 'myPrinter'
    win32print.EndPagePrinter (myPrinter)
finally:
    win32print.ClosePrinter (myPrinter)

Je sais que le code ne fonctionne pas 100%, mais essayer de s’inspirer :wink:

Bonjour Isaac,
je n’ai pas réussi a m’en sortir avec le code.
mais j’ai trouve trouver une astuce avec notepad en fichier temporaire . Ça fonctionne bien.
merci quand même pour l’aide.
cordialement
kyrob

1 « J'aime »