Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/10/2022, à 11: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 roll
Merci pour votre aide.
TG

Dernière modification par MisterT28 (Le 03/10/2022, à 10:42)

Hors ligne

#2 Le 01/10/2022, à 18: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, à 14: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 !!!

kamaris a écrit :

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, à 14:38)

Hors ligne

#4 Le 03/10/2022, à 10: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 smile
MERCI

Hors ligne

#5 Le 03/10/2022, à 13: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