RPI et photobooth - pb impression CUPS / IPP

Bonjour les développeurs,
Je cherche désespérément un spécialiste de la communication RPI / serveur d’impression CUPS / protocole IPP…
Je développe un projet de photobooth à partir d’un code Python que j’ai adapté à mes besoins.
Je souhaite le rendre plus robuste en gérant les erreurs d’impression (plus de papier, plus d’encre, format de papier incorrect…) qui pour l’instant bloquent tout lorsque ça arrive.
Je parviens à récupérer les codes erreurs de l’imprimante à partir du code Python, de la bibliothèque pycups sur le serveur d’impression CUPS mais je ne sais pas comment envoyer des commandes au serveur CUPS depuis mon programme pour : vider la file d’impression ou redémarrer l’imprimante (Canon Selphy CP1200). Peut-être par le protocole IPP mais comment faire pour envoyer une commande IPP et surtout laquelle…
Je trouve très peu d’infos sur le sujet. Je suis désespéré car ça fait plusieurs jours que je cherche sans succès. alors je m’en remets à la communauté RPI / Python…
Quelqu’un a-t-il une idée ?
Merci à vous d’avance pour vos conseils,
NC

hello,

pour canceller un job tu dois pouvoir exécuter un shell avec cancel (cancel(1))
pour d’autres trucs on peut compiler du c++ (CUPS Programming Manual)
il faut aussi installer libcups2-dev

Bonjour,
Déjà merci d’avoir pris le temps de répondre.
En revanche, d’après ce que je comprends, il faudrait que j’exécute ce shell depuis Python ?
Shell qui contient une commande cancel… je vais me pencher sur la question.
Et pour les autres commandes compiler un bout de programme en c++ exécuté à partir de mon script Python ?
Bon… je vais essayer de comprendre car je ne suis pas du tout un expert.
En tout cas merci pour la piste.

avec un bout de python comme ça par exemple:

import subprocess
# et en mofifiant les parametres
print(subprocess.run("cancel [ -E ] [ -U username ] [ -a ] [ -h hostname[:port] ] [ -u username ] [ -x ] [ id ] l", shell=True))

Eh bien une solution trouvée avec la bibliothèque « OS » et envoyant effectivement cette commande « cancel » suivie du nom de l’imprimante et du numéro du jobs, ça fonctionne.
Merci encore.