IMPRESSION AU FIL DE L'EAU VERS IMPRIMANTE MATRICIELLE

Messages postés
19
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
21 avril 2011
- - Dernière réponse : pat46fr
Messages postés
3
Date d'inscription
dimanche 11 janvier 2009
Statut
Membre
Dernière intervention
8 novembre 2014
- 25 avril 2011 à 19:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49155-impression-au-fil-de-l-eau-vers-imprimante-matricielle

cs_goc
Messages postés
19
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
21 avril 2011
-
j'ai eu le meme pb, mais j'ai reussi a imposer une connexion en mode "serie", et du coup, c'etait plus simple grace a mscomm
pat46fr
Messages postés
3
Date d'inscription
dimanche 11 janvier 2009
Statut
Membre
Dernière intervention
8 novembre 2014
-
J'avais besoin de faire du ligne par ligne sur une commodore MPS1270 (je sais c'est vieux)mais je ne suis pas arrivé à récupérer le contenu du zip sous vb.net 2010 express.
Alors en réfléchissant simplement et en constatant que sous DOS même sans pilote spécifique l'imprimante répond, suffit juste de passer sous vb net la commande DOS adéquate soit:
Shell("cmd.exe /C echo Mise sécurite pompe 1 >PRN:", 1)
ou pour une réseau:
Shell("cmd.exe /C echo Mise sécurité pompe 1 >\\Pat\IBMPrinter", 1)

Et on peut même passer une variable du style:
Dim retval
Dim reponse = InputBox("Quoi")
If reponse <> "" Then
reponse += Chr(13) + Chr(13)
retval = Shell("cmd.exe /C echo " & reponse & " >\\Pat\IBMPrinter", 1)
End If

Ça me semble plus simple qu'une pleine page de code, non?

Pat
cs_goc
Messages postés
19
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
21 avril 2011
-
l’inconvénient du passage par "cmd", c'est qu'on ne contrôle rien du tout, en particulier pas la bonne exécution du programme, sauf à faire une usine à gaz, et qu'a la première erreur, c'est tout le programme qui plante
alors que la gestion de mscomm est fiable et efficace
pat46fr
Messages postés
3
Date d'inscription
dimanche 11 janvier 2009
Statut
Membre
Dernière intervention
8 novembre 2014
-
Salut, je suis d'accord avec toi, mais ça fait une semaine que j'essaye de faire imprimer une seule ligne sur ma vieille imprimante et rien à faire. De tous les codes que j'ai trouvé (comme le tien), j'arrive pas à les faire fonctionner sous Vb.net2010. C'est vrai que je ne suis pas un pro de la programmation (et de loin) et que je découvre VB.net avec ce projet (qui est pour mon boulot) mais je trouve aberrant que sous DOS avec un simple :
echo "allo" > prn:
sans aucun pilote, l'imprimante fonctionne nikel et qu'avec un langage super évolué je n'arrive pas à le faire. Et apparemment, à voir ce qu'il y a sur le net, je ne suis pas le seul.
Le projet c'est de la surveillance de station d'épuration, je me moque de faire des dessins ou du gras, ou toute autre chose, je veux juste que quand une pompe se met en route (ou autre événement)que ça m'imprime un truc du style :
Le 22/04/2011 11:35 : Mise en route P1
Tout le reste du programme, interface armoire /PC, base de données.... est en bonne voie mais là je bute sur ce truc à la con.
Au pire, je mettrais le suivi dans un fichier et je l'imprimerai quand j'en aurais besoin. Mais franchement ça fout les boules.

Pat
pat46fr
Messages postés
3
Date d'inscription
dimanche 11 janvier 2009
Statut
Membre
Dernière intervention
8 novembre 2014
-
Comme le passage par DOS n'est pas le top, une petite astuce pour ceux qui cherchent à faire du ligne par ligne sur du papier listing, suffit de stipuler une hauteur de page très petite dans la partie config de l'impression

Dim CustomSize1 As New PaperSize("Custom Paper Size", 700, 25)
docToPrint.DefaultPageSettings.PaperSize = CustomSize1

Astuce toute bête mais qui évite un paquet de lignes de code. Évidemment si on veux gérer le saut de page, il faut ajouter une routine qui compte les lignes par exemple. Mais perso je pense que quand on imprime sur du listing c'est plus pour avoir un "journal" des opérations donc le saut de page, pas important. C'est mon cas, et ça me convient très bien comme ça.
Pat