EPSON ESC/POS Komutu hakkında

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 05:32
Konum: Antalya
İletişim:

EPSON ESC/POS Komutu hakkında

Mesaj gönderen athena » 02 Mar 2006 12:10

Selam,

Epson TM-U295 model slip yazıcılarda yazı bitip geri aldıktan sonra
yazıcıyı otomatik olarak Release Dugmesine basıldığındaki konuma getirmek için bir komut bilen varmıdır?

ESC/POS komutlarıyla yada başka yontem.

Kendi driverinden grafik format yazıcıyı seçerek yapınca kendisi yapıyor.
Ama ESC komutları ile manuel yapılmıyor.

Ornek kodum aşağıdadır.

{Athena TMU TEST program }
unit Tmutest01;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Printers, FR_Class, frxClass;

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
W_PRN_ADI: TEdit;
Label1: TLabel;
Button2: TButton;
Button3: TButton;
GroupBox2: TGroupBox;
Button1: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
frReport1: TfrReport;
Button12: TButton;
Button13: TButton;
frxReport1: TfrxReport;
Button14: TButton;
Button15: TButton;
function MySatirYaz(Cpi: Byte; Satir: string): Boolean;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Yazici: TextFile;

implementation

{$R *.dfm}

function TForm1.MySatirYaz(Cpi: Byte; Satir: string): Boolean;
begin
Result := True;
case Cpi of
5: WriteLn(Yazici, #27#15#27#14, Satir);
10: WriteLn(Yazici, Satir);
12: WriteLn(Yazici, #27#58, Satir);
15: WriteLn(Yazici, #27#103, Satir);
17: WriteLn(Yazici, #27#15, Satir);
20: WriteLn(Yazici, #27#15, Satir);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
if W_PRN_ADI.Text = '' then exit;
AssignFile(Yazici, W_PRN_ADI.Text);
ReWrite(Yazici);
MySatirYaz(10, '');
except
on E: Exception do
begin
ShowMessage(E.Message);
end;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
CloseFile(Yazici);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
MySatirYaz(10, #27 + '@'); //İnitialize Printer
MySatirYaz(10, #27 + 'i'); //İnitialize Printer

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
// MySatirYaz(10, #27 + 'a' + Chr(1)); //specifies a centered Printing Position
MySatirYaz(10, chr(27) + 'c' + Chr(3));
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
MySatirYaz(10, #27 + '!' + chr(0)); //specifies Font A
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
MySatirYaz(10, 'Bu Gün:' + DatetoStr(Date)); //Test Data
MySatirYaz(10, 'Athena Bilgisayar Ltd.Sti TMU Test'); //Test Data
// MySatirYaz(10, #27 + 'd 3'); //3 Lines Feed
MySatirYaz(10, #27 + 'a 0'); //Select Left Printing Position
MySatirYaz(10, 'Hamburger 1 2.50');
MySatirYaz(10, 'Cola 1 2.00');
MySatirYaz(10, 'Cips 1 1.00');
MySatirYaz(10, #13); //Line Feed
MySatirYaz(10, '-----------------------------');
MySatirYaz(10, #27 + '!' + #17); // Set Double Height
MySatirYaz(10, 'TOPLAM 5.50');
MySatirYaz(10, #27 + '!' + #0); // Cancel Double Height
MySatirYaz(10, '');
// MySatirYaz(10, Chr($1D) + 'V' + Chr(66) + Chr(0)); // Feeds Paper and Cut
// MySatirYaz(10, Chr($1B) + Chr($70) + Chr($0) + chr(60) + chr(120)); // Drawer Kick
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
try
CloseFile(Yazici);
Close;
except
on E: Exception do
begin
ShowMessage(E.Message);
end;
end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
MySatirYaz(10, chr(27) + 'c' + Chr(4));
// MySatirYaz(10, chr(27) + 'c' + chr(1) + chr(2));
// MySatirYaz(10, chr(27) + 'c' + chr(2) + chr(4));
// MySatirYaz(10, chr($1B) + chr($63) + chr($33) + chr(8));
//ySatirYaz(10, #27 + '9');
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
MySatirYaz(10, chr(27) + 'e 0');

end;

procedure TForm1.Button10Click(Sender: TObject);
begin
MySatirYaz(10, chr(27) + 'd 0');
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
MySatirYaz(10, chr($1D) + 'V' + chr(66) + Chr(0)); //Kesme Karakteri

end;

procedure TForm1.Button12Click(Sender: TObject);
begin
frReport1.PrepareReport;
frReport1.ShowReport;
// frReport1.PrintPreparedReportDlg;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
frxReport1.ShowReport();
//frxReport1.Print;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
Printers.Printer.BeginDoc;
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.Canvas.TextOut(0, 0, 'DENEME 13246579' + #13 + #10);
Printers.Printer.EndDoc;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
// MySatirYaz(10, chr($1B)+chr($70)+chr($0)+chr(60)+chr(120)); Drawer Kick

MySatirYaz(10, chr($1B) + '@');

{Yatay Yazdirma...
MySatirYaz(10, chr($1B) + 'L');
MySatirYaz(10, chr($1B) + 'T' + chr($3));
MySatirYaz(10, chr($1B) + 'W' + chr(50) + chr(0) + chr(50) + chr(0) + chr(209) + chr(0) + chr(50) + chr(0));
for W_i := 1 to 21 do
begin
MySatirYaz(10, 'ROTATE DONGU' + chr(10));
end;
MySatirYaz(10, chr(12));

}
end;

end.
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."

Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4479
Kayıt: 10 Haz 2003 12:48
Konum: İstanbul

Mesaj gönderen rsimsek » 03 Mar 2006 09:53

Bu bir soru mu çözüm mü :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!

Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 05:32
Konum: Antalya
İletişim:

Mesaj gönderen athena » 04 Mar 2006 02:45

Bu bir soru ama ESC/POS içinde bir örnek.

Bu yazıcılara yukarıdaki program ornegindeki gibi veri gönderip yazdırdığında sorun şu oncelikle kağıdı neresinden koyarsanız koyun once geri başa sarıp sonra yazmaya başlamıyor. Ayrıca dokum bitince kendi otomatik kağıdı geri çıkartıp. Release konumuna geri dondürmüyor.

Ama kendi driveri ile tanıtılmış windowsdaki yazıcıdan yollarsanız bu dediklerimi otomatik yapıyor. Buda işime gelmiyor çünkü yazıcıdan gönderirsek grafik basıyor ve döküm çok geç çıkıyor.

Ben kendimce çözümü önce textfile şeklinde
yazcıya yolluyorum sonra grafik yazıcısından bos bir satır yazdırıyorum
kendi otomatik olarak yukarıda anlattığım şekilde çalışıyor. işte ben bunların ESC kodlarını bilen varmı diye sormuştum.
Arayan olursada hazır pos yazıcı örnek kaynak kodu.

Saygılar.
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."

Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4479
Kayıt: 10 Haz 2003 12:48
Konum: İstanbul

Mesaj gönderen rsimsek » 04 Mar 2006 09:36

Yine de makale gibi olmadı ama ipucu olabilir :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!

mert_37
Üye
Mesajlar: 20
Kayıt: 13 Şub 2014 02:53

Re: EPSON ESC/POS Komutu hakkında

Mesaj gönderen mert_37 » 24 Nis 2017 11:44

Değerli Arkadaşlar
Ben de buna benzer bir çalışma yaptım ...Fiş falan kesiyoruz sıkıntı yok. Ancak yazıcısınn kesicisi lazım oldu. Kendi ayarından yaptım
olmadı. Içerden komut göndermeye çalışıyorum olmuyor. Hatta verdiğim chr komutlarının hiçbir faydası yok...
Düşündümki bilmediğim bişe var.

Kesin bir acemiliktir farkındayım...
Yazıcıya gönderdiğim chr komutlarını hiç algılamıyor...
Orneğin CHR(27)+'i' yazıcının kagıdı kesmesi için gönderilen bir komut ...
Acaba önceden bunun bilmediğim bir seti falanmı var.

Kullandığım yazıcı Xprinter...
Delphi7 ile çalışıyorum...
Yardımcı Rehber olacak arkadaşıma şimdiden teşekkürler...
Saygfılar

Cevapla