French Impression Wifi

logemag

Member
Licensed User
Longtime User
Bonjour à tous, je viens de passer la soirée à essayer de trouver, en vain, une solution pour imprimer par le biais du wifi, mais sans aucune aide externe, PC connecté par B4aserveur, ou encore un cloud Google. Je veux simplement pouvoir avoir ma tablette (ou mon phone ou mon EEE-top X86 4.04) et une imprimante wifi derrière pour pouvoir utiliser ma propre application de façon autonome.

Mon impression ne sera qu'un vulgaire fichier texte formaté par des espaces, pas de xls, ou pdf ou autre image jpg... même si ça n'a guère d'importance dans le sujet.

Des application existent, comme PrinterShare™, qui permet (dans sa version payante bien sûr !) de pouvoir imprimer directement sur n'importe quelle imprimante wifi, donc je me dis que ça doit bien pouvoir se programmer ! Cette appli est compatible avec une variété impressionnante d'imprimantes wifi.

Je voudrais arriver à faire que mon application (en développement) puisse imprimer de façon autonome (sans cloud, ni PC, ni serveur relié) la synthèse des informations collectées dans la base de donnée. (scan de l'imprimante connecté au même wifi à proximité, récupération des informations, et démarrer une impression simple...)

Si quelqu'un à quelques infos là dessus, je suis preneur !
 

nico78

Active Member
Licensed User
Longtime User
Il y a une possibilité mais ça ne fonctionne pas avec toutes les imprimantes, il faut établir une connexion TCP avec l'adresse IP de l'imprimante et le port 9100, ensuite tu envoie ton texte et tu finis par le caratère de commande chr(12) (on appelle ça le form feed).


Dis moi si ça marche!
 

logemag

Member
Licensed User
Longtime User
est ce que c'est ça ?

Bonjour Nico, je viens d'essayer de faire un bout de code avec tes indications, mais ça ne fonctionne pas, suis-je déjà dans le vrai dans ce bout de code ? (je suis pas très familier des sockets et des connexions en général !)

B4X:
Sub Process_Globals
Dim Sock As Socket
Dim Astreams As AsyncStreams
Dim ip As String : ip = "192.168.1.86" ' adresse de mon imprimante en wifi
Dim port As Int: port = 9100
End Sub

Sub Globals
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Sock.Initialize("Client")
   Sock.Connect(ip,port,20000)
End Sub

Sub Client_Connected(ConStatus As Boolean)
   If ConStatus = True Then
      ' ToastMessageShow("Connection Successful", False)
      Astreams.InitializePrefix(Null, False, Sock.OutputStream, "Astreams")
      Dim MonTest As String
      MonTest ="Test impression ! " & Chr(12)
      Dim buffer() As Byte
      buffer = MonTest.GetBytes("UTF8")
      Astreams.Write(buffer)
      ToastMessageShow("Envoi de : " & MonTest,False)      
   Else
      Msgbox(LastException.Message, "Error connecting")
   End If   
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Je sais pas trop si ça fonctionne comme ça, j'ai piqué un bout de code sur les sockets que j'ai modifié, mais il ne se passe absolument rien, si j'enlève la remarque sur Client_Connected, il me dit bien que la connexion est succesfull, mais il ne se passe rien ensuite ! Merci de votre aide, si quelqu'un a réussi sur son imprimante, qu'il me le dise, SVP (pour ma part mon imprimante est une Brother DCP-375CW)
 

nico78

Active Member
Licensed User
Longtime User
Malheureusement, je ne peux pas tester car mon imprimante n'est pas compatible, j'essaierais de faire des tests par un autre moyen plus tard.

sinon ton code m'a l'air bon.

Tu devrais tester si cela fonctionne sur ton PC déjà!
 
Last edited:

logemag

Member
Licensed User
Longtime User
Re-Bonsoir, Nico, ton Socket.exe sur google refuse de se télécharger, il me dit que le fichier est infecté et que seul le propriétaire peut télécharger un fichier infecté... Je pense que Google n'aime pas les .exe en dur dans Drive, si tu pouvais le compresser STP... Je voudrais bien voir ce que ça donne en envoi PC, juste pour donner des idées...
 

nico78

Active Member
Licensed User
Longtime User
Nouveau lien
 

Attachments

  • Socket.zip
    2.8 KB · Views: 285
Last edited:

nico78

Active Member
Licensed User
Longtime User
Ce code fonctionne, pensez à renseigner l'adresse IP!
Si ça ne marche pas, c'est que votre imprimante n'est pas compatible.

B4X:
Sub Process_Globals
Dim Sock As Socket
Dim Astreams As AsyncStreams
Dim ip As String : ip = "" ' adresse de mon imprimante en wifi
Dim port As Int: port = 9100
End Sub

Sub Globals
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Sock.Initialize("Client")
    Sock.Connect(ip,port,5000)
End Sub

Sub Client_Connected(ConStatus As Boolean)
    If ConStatus = True Then
        ToastMessageShow("Connection Successful", False)
        Astreams.Initialize( Null, Sock.OutputStream, "")
        Dim MonTest As String
        MonTest ="Test imprimante ..." & Chr(12)
        Dim buffer() As Byte
        buffer = MonTest.GetBytes("UTF8")
        Astreams.Write(buffer)
        ToastMessageShow("Envoi de : " & MonTest,False)        
    Else
        Msgbox(LastException.Message, "Error connecting")
    End If 
   Astreams.Close
   Sock.Close
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub
 
Last edited:

logemag

Member
Licensed User
Longtime User
Bonjour à tous, et salut à Nico. bin en réessayant avec tes modifs, ça ne fonctionne pas mieux... Je testerais chez un pote avec son imprimante wifi quand même, juste en passant l'IP de l'imprimante... Merci quand même... Pour le Socket PC, j'ai testé aussi, par l'IP du PC, désactivé le parefeu, et j'ai rien il me dit Time OUT... Enfin ce n'est pas ça que je recherchais de toute façon...

A quand des drivers unifiés pour passer des impressions, nos applis en seront que plus riche... J'ai l'impression de tourner en rond, même avec toutes mes imprimantes, je possède une TM-T88 III, incompatible Androïd Epos (seule la version V l'est), une TM-T20 USB et une TM-T20 Ethernet (incompatible Androïd Epos), et une TM-T70 USB (normalement compatible Androïd Epos, mais comme l'interface a été modifiée de RS232 en USB, ça ne fonctionne pas non plus !!!)... J'hésite à acheter une TM-T88 V Bluetooth (qui avoisine quand même les 350€ HT) pour faire des tests d'impression ticket, si ça ne fonctionne pas, j'aurais les boules ! pour ce qui est d'androïd, l'usb host n'a jamais réussi à faire passer une imprimante, l'ethernet n'est dispo qu'à partir de la version 3, comme par hasard ma tablette ne sera jamais évolutive en Honeycomb, et sur un PC j'ai installé le X86 4.04 mais google n'a pas implémenté les librairies ethernet, et mon dongle Bluetooth n'arrive pas à se synchroniser avec un simple portable...

J'ai 3 applis en développement, 1 qui permettra de passer des commandes à notre logiciel PC (là j'ai pas besoin d'impression, c'est le PC qui gère les infos) mais 2 autres applis sont au cahier des chargesune sur PC, l'autre en version simplifiée sur Androïd, et si j'ai pas la possibilité d'imprimer, je vais me trouver obliger de passer par des options alternatives qui ne me conviennent pas... On recherche la mobilité, mais s'il faut être connecté à un PC constamment, j'appelle plus ça de la mobilité... J'avoue que je pensais ça plus facile à l'époque. Pas déçu, car androïd n'est qu'en recherche de sa propre voie, mais j'attendrais des nouvelles avec intérêt...
 

nico78

Active Member
Licensed User
Longtime User
Je sais que c'est pas ce que tu veux mais les constructeurs comme HP, Brother, Lexmark, Canon et Epson par exemple ont leur propre appli pour imprimer sur le PlayStore et bien sûr ça marche nickel si imprimante compatible.
 
  • Like
Reactions: sap

JJM

Active Member
Licensed User
Longtime User
Imprimer en WIFI

Bonsoir,
Une autre solution peu onéreuse est d'utiliser le logiciel 'Print from Android' de MLC. La version gratuite est très limitée mais donne une idée du fonctionnement de ce logiciel.
Bonne soirée.
JJJM
 

logemag

Member
Licensed User
Longtime User
Pardon JJM, je n'avais pas vu le post, j'ai rapidement survolé cette appli, mais elle ne correspond pas trop à ma demande... Mais je crois que je vais passer par un PDFwriter pour le moment, avant de connaitre mieux le langage Java pur, et de me créer ma propre bibliothèque, et vu qu'EPSON a posté en .JAR une librairie de quelques unes de leurs imprimantes thermiques, je vais me mettre au taff... Merci quand même !
 

sap

Member
Licensed User
Longtime User
Hello
the code works very well on my imprimente with a scrolview how I should go about it

thank you
 
Top