#1 Le 01/10/2022, à 10:56
- MisterT28
Dialogue directe sur l'imprimante, mais quel nom ? [Résolu]
Bonjour,
Je tente désespérément de dialoguer avec mes imprimantes dans un programme console.
Je suis sous Ubuntu 20.04.4 LTS
J'ai 2 imprimantes Epson, une Picturemate et une SX215.
lorsque je lance :
$ lpstat -a | awk '{print $1}'
Epson-Stylus-SX210
PictureMate
Je récupère le nom attribué pour mes deux printers.
Si je lance un :
$ lp -d Epson-Stylus-SX210 texte
request id is Epson-Stylus-SX210-31 (1 file(s))
Le fichier "texte" s'imprime correctement sur la SX, idem pour la Picturemate.
Ma problématique étant que lorsque j'automatise ceci, dans un source C, mon imprimante n'est pas reconnu.
device = open("Epson-Stylus-SX210", O_RDWR | O_SYNC);
if (device == -1)
{
printf("Error opening device file'%s'\n", argv[3]);
return -1;
}
retour :
Error opening device file'Epson_Stylus_SX210': No such file or directory
Unknown printer. Wrong device file?
J'ai tenté de remplacer le nom de l'imprimante par :
/dev/usb/lp2 (fichier créé à la connexion d'une ou des deux imprimantes)
mais idem, fichier non reconnu.
Je dois oublier quelque chose
Merci pour votre aide.
TG
Dernière modification par MisterT28 (Le 03/10/2022, à 09:42)
Hors ligne
#2 Le 01/10/2022, à 17:51
- kamaris
Re : Dialogue directe sur l'imprimante, mais quel nom ? [Résolu]
Déjà oui il faudrait donner un chemin à open() (donc peut-être /dev/usb/lp2 dans ton cas), mais il peut surement y avoir d'autres problèmes.
Cette réponse parle par exemple d'un problème de droits lié au fait que CUPS a pris la main : https://stackoverflow.com/a/38721112
Aucune idée si c'est bien ça le problème ou autre chose cependant.
Tu devrais peut-être essayer de faire autrement : pourquoi vouloir automatiser ça par un programme C ? Pourquoi ne pas faire un script avec des commandes comme celles citées plus haut ?
Hors ligne
#3 Le 02/10/2022, à 13:36
- MisterT28
Re : Dialogue directe sur l'imprimante, mais quel nom ? [Résolu]
Merci de ta réponse je vais regarder ton lien, je me doutais un peu que ca pouvait venir de CUPS !!!
Tu devrais peut-être essayer de faire autrement : pourquoi vouloir automatiser ça par un programme C ? Pourquoi ne pas faire un script avec des commandes comme celles citées plus haut ?
Parce que j'ai déjà un programme conséquent à la suite. En fait je reprend un repositary existant pour le faire évoluer/upgrader.
Dernière modification par MisterT28 (Le 02/10/2022, à 13:38)
Hors ligne
#4 Le 03/10/2022, à 09:37
- MisterT28
Re : Dialogue directe sur l'imprimante, mais quel nom ? [Résolu]
OK, c'est bon,
Merci kamaris pour ton aide, en fait il fallait donner les droits au fichier de redirection lp2 /
chmod 777 /dev/usb/lp2
Dorénavant, je peux dialoguer avec mes imprimantes
MERCI
Hors ligne
#5 Le 03/10/2022, à 12:17
- kamaris
Re : Dialogue directe sur l'imprimante, mais quel nom ? [Résolu]
C'est pas terrible ça.
Il vaudrait mieux donner à ton programme les droits d'accéder à /dev/usb/lp2 (en l'exécutant en root probablement).
Hors ligne