ok je vois + ou - mais ou puis je trouver cet OCX pour l importer dans delphi ?
je dois avouer que je m y perds un peu la
ok je vois + ou - mais ou puis je trouver cet OCX pour l importer dans delphi ?
je dois avouer que je m y perds un peu la
Bah sur le site d'epson, c'est ce qu'ils appellent EPSON OPOS ADK (tu ne la vois pas ?)Envoyé par softstar
Le site est ici : https://www.epson-pos.com/sdssm/td_index.html
Tu installes ça, puis dans Delphi, tu vas dans le menu "Projet-->Importer Une Bibliothèque de Types" et tu suis la procédure habituelle pour installer un contrôle ActiveX : comme pour avoir un lecteur PDF (ActiveX Adobe Acrobat Reader), ou un contrôle Flash Mediaplayer...)
Dans notre FAQ et l'aide Delphi, ça doit être expliqué en long, en large et en travers.
Mais ça se trouve, tu peux t'en passer :
En tout cas il faudrait que tu testes ça pour bien faire :
(une fiche et un bouton dessus)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; type TPrnBuffRec = record BuffLength : word; Buffer : array [0..255] of char; end; var Form1: TForm1; implementation uses printers; {$R *.dfm} function ImprimanteOK(Imprimante:TPrinter):boolean; var TestInt : integer; begin TestInt := PASSTHROUGH; result := (Escape(Printer.Handle,QUERYESCSUPPORT, sizeof(TestInt),@TestInt,nil)>0); end; procedure Imprime(Imprimante:TPrinter;Commande:string); var Buff : TPrnBuffRec; begin { Copy the string to the buffer } StrPCopy(Buff.Buffer, Commande); { Set the buffer length } Buff.BuffLength := StrLen(Buff.Buffer); { Make the escape} Escape(Printer.Canvas.Handle,PASSTHROUGH, 0,@Buff,nil); end; procedure TForm1.Button1Click(Sender: TObject); var Commande:string; begin //Construit la commande //Initialise l'imprimante (ESC @) Commande:=#27'@'; //Specifie un alignement centré (ESC a) (1 pour centré) Commande:=Commande+#27'a'#1; //Specifie la Police de caractère A (ESC !) (0 pour la Font A) Commande:=Commande+#27'!'#0; //Prépare un texte : la date et l'heure (Centré, avec la Police A donc) Commande:=Commande+'January 14, 2002 15:00'; //Imprime et saute 3 lignes (ESC d) Commande:=Commande+#27'd'#3; ///Selectionne un alignement du texte à gauche (ESC a) (0 pour centré) Commande:=Commande+#27'a'#0; //Selectionne la Police de caractère B (ESC !) (1 pour la Font B) Commande:=Commande+#27'!'#1; //Du texte et passage à la ligne avec #10 Commande:=Commande+'Carottes 20.00 '#10; Commande:=Commande+'Navets 11.00 '#10; Commande:=Commande+'Raviolis 5.00 '#10; //Saute une ligne (LF) Commande:=Commande+#10; //Mode caractères "Double-Hauteur" ON (ESC ! 17) Commande:=Commande+#27'!'#17; //Affiche le prix Total Commande:=Commande+'TOTAL 36.00 '#10; //Mode caractères "Double-Hauteur" OFF (ESC ! 17) Commande:=Commande+#27'!'#0; // Commande:=Commande+'------------------------------'#10; Commande:=Commande+'Payé 50.00 '#10; Commande:=Commande+'Rendu 14.00 '#10; //Sort le ticket et coupe Commande:=Commande+#29'V'#66#0; //Ouverture du tiroir-caisse (ESC p) Commande:=Commande+#27'p'#60#120; if ImprimanteOK(Printer) then begin Printer.BeginDoc; Imprime(Printer,Commande); Printer.EndDoc; end; end; end.
Comment ai-je fait ça ?
1) inscription ici : https://www.epson-pos.com/sdssm/td_index.html
2) Téléchargement du document "FAQ for ESC/POS"
3) dedans il y a un exemple en BASIC que j'ai adapté avec le code Delphi
Bidouilleuse Delphi
impecc waskol , en fait je me trompais j avais téléchargé le sp6 pour l opos adk
(service pack 6)
et donc,fattalement ca marchais pas vu qu il faut d abord installer l opos adk
de base
je vais tester tout ca , et je te tiens au courant
en tout cas,toutes mes félicitations d'avoir trouvé la solution si vite
, et encore merci
Et n'oublie pas de tester la petite appli chez ton restaurateur dont je t'ai mis la source, si ça marche, c'est bingo !
Et en plus, on devrait pouvoir trouver les mêmes polices que l'imprimante :
WPC 1252,
PC866 [Cyrillic #2],
PC852 [Latin2]
pour pouvoir sortir un ticket sur l'écran (un aperçu avant impression)
Bidouilleuse Delphi
ah bien vu, j avais pas vu que elle a 3 type de polices de caracteres
différents
he ben , c est une folie cette imprimante ,
voila j ai installé les composants activex sous delphi
qui sont :
TOPOSCashDrawer
TOPOSCheckScanner
TOPOSKeyLock
TOPOSLineDisplay
etc...
ainsi que TOPOSPrinter
je suppose d ailleurs que je n aurais qu a utiliser le TOPOSPrinter
je regarde maintenant pour voir les différentes méthodes associées a ce composant
bon,je viens de regarder un peu les méthodes de ce composant
je comprends + ou -
je viens de téléphoner au gérant du café
il me pretera son imprimante a la fermeture et je lui rapporterais le lendemain
matin a l'ouverture
comme ca,je serais certain que ca fonctionne
bon he bien voila , ce café ferme tout les jours a 2h00 du matin
et réouvre a 7h00 du matin
je vais donc faire ca a l'aveugle avec les methodes et commandes
et j irais tester ca un jour de fermeture
Humm, pas facile pour tester...Envoyé par softstar
Sinon, pour la partie du code que je t'ai donné, et après mure réflexion :
Essaies aussi avec une version du programe sans le Printer.BeginDoc, ni le Printer.EndDoc (la commande avec les séquences d'échappement contient le code d'initialisation de l'imprimante.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ... if ImprimanteOK(Printer) then begin Printer.BeginDoc; Imprime(Printer,Commande); Printer.EndDoc; end;
Si tu n'est pas fatigué, va les tester ce soir, comme ça tu seras fixé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ImprimanteOK(Printer) then begin Imprime(Printer,Commande); end;
Si jamais ça marche, un ticket sortira...
Du coup, ton programme va être hyper facile à faire, et je t'assures qu'il sera opérationel très très vite !!!
Bidouilleuse Delphi
euh , ce soir ca va pas etre possible
en plus il étais bourré au téléphone
(tu vas me dire,normal pour un gérant de café , mdr )
mais je vois ce que tu veut dire , et dés que je pourrais passer le tester
chez lui , je le ferais
mais tout a fait entre nous,je vais déja préparer un peu le code car devant le
jury (le 16 septembre à 11h15 du matin) ,
je n ai pas besoin de montrer d impressions , juste
leur expliquer comment j ai fait pour la gérer
après,ben , je l implémenterais chez ce gérant de café et si ca va pas,ben il
sera bien obligé de me la pretter son imprimante , mdr
Quoique, si tu veux les estomaquer et faire bonne impression, ce serait mieux de sortir deux ou trois tickets exemplesEnvoyé par softstar
Bidouilleuse Delphi
ouep tout a fait
je vais donc préparer le code ici , et j essayerais de passer un jour qu il y a
pas trop de monde pour tester
par contre je me demandais si ca existerais peut etre un style de switch ou cable
en RS232
pour pouvoir connecter mon pc portable a l imprimante ,et donc la laisser brancher aussi a la caisse tactile
comme ca,je n aurais pas besoin de prendre son imprimante et de la deconnecter de sa caisse tactile (vu qu il en as besoin )
quelqu un aurais une idée svp ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager