რა იმალება ონლაინ სალარო აპარატებში: ფისკალური რეგისტრატორის შემუშავება. ESC POS ESC * ბრძანება ბიტმაპის დაბეჭდვისთვის პრინტერზე მრავალი ხაზის დაბეჭდვა ESC-ის გამოყენებით

ESC * არის ESC/POS რამდენიმე "სურათის ბიტის" ბრძანებიდან ერთ-ერთი. ის იღებს "სვეტის ფორმატის" მონაცემებს, რომლებიც შეიძლება წარმოადგენდეს მხოლოდ 8 ან 24 პიქსელიანი ერთი რიგის. ასე რომ, აქ არის ორი კარგი ვარიანტი.

მრავალი სტრიქონის ბეჭდვა ESC* გამოყენებით

როგორც ჩანს, თქვენ შეგიძლიათ დაბეჭდოთ ერთი ხაზი, ასე რომ, მე ვივარაუდებ, რომ თავად მონაცემთა ფორმატი არ არის პრობლემა.

თქვენ შეგიძლიათ დაბეჭდოთ მრავალი სტრიქონი ბრძანების უბრალოდ გამეორებით დამატებითი ხაზების დასაბეჭდად, გამოყოფილი \n ხაზების წყვეტებით. ამისათვის საჭიროა გამოსახულების დაჭრა და სივრცით შევსება ისე, რომ ის იყოს 8 ან 24 პიქსელის სიმაღლის ჯერადი (ისევ, ფორმატის გამო).

ხაზების დაშორების გამო, თქვენ უნდა გასცეთ ბრძანება ხაზოვანი არხების ზომის შეცვლაზე სურათის დაბეჭდვისას, შემდეგ კი სხვა ბრძანება მათი გადატვირთვის დასასრულს.

მე ვიყენებ ESC 3 0x10 16 არხის ხაზისთვის (ბაიტი 0x1b 0x33 0x10) და ESC 2 (ბაიტი 0x1b 0x32) გადატვირთვისთვის.

ბეჭდვის ამ მეთოდს აქვს შესანიშნავი თავსებადობა ძველ პრინტერებთან, მაგრამ შესაძლოა გამომავალში რამდენიმე თხელი ჰორიზონტალური ხაზი აღმოჩნდეს.

დაბეჭდეთ მთელი სურათი GS v 0-ით

image ბრძანების ეს ბიტი იღებს სხვადასხვა "რასტერის ფორმატის" მონაცემებს. მე ვიყენებ იმ ფაქტს, რომ blob ამ ფორმატში არის ორობითი მონაცემების იდენტური ფართოდ გამოყენებული PBM bitmap ფორმატში (კონკრეტულად ბინარული მონაცემები P4 სათაურის ფაილებში).

სურათის სიმაღლე შეზღუდული იქნება თქვენი ბეჭდვის ბუფერის ზომის მიხედვით, მაგრამ შეიძლება იყოს 65535 პიქსელამდე. წარმოდგენის გამო, სიგანე უნდა გაიყოს 8-ზე.

ცოტა ადამიანი ფიქრობს იმაზე, თუ როგორ მუშაობს სალაროს ტექნოლოგია მაღაზიაში ყიდვისას. ფაქტობრივად, ეს არამარტო ტექნიკური, არამედ სამართლებრივი თვალსაზრისითაც კარგად დამუშავებული მექანიზმია. ყველამ იცის, რომ მთავარია ჩეკის მიღება, მაგრამ მხოლოდ მეწარმეებმა იციან, რატომ არის ჩეკი შეძენის დამადასტურებელი ფისკალური დოკუმენტი.

ამ სტატიაში ჩვენ გაგიზიარებთ ჩვენს გამოცდილებას სალარო აპარატის შემუშავებაში და გეტყვით, თუ როგორ მუშაობს ყველაფერი შიგნიდან.



ვინტაჟური სალარო

1. სისტემა: აპარატურა + პროგრამული უზრუნველყოფა სალაროში

მთელ პროგრამულ და აპარატურულ კომპლექსს, რომელიც დამონტაჟებულია სალაროს სამუშაო ადგილზე, შეიძლება ეწოდოს POS სისტემა ან POS ტერმინალი, ინგლისური გაყიდვის წერტილიდან - გაყიდვის ადგილიდან.

მოდით შევხედოთ როგორ მუშაობს POS სისტემა. ვინაიდან სისტემასა და ტერმინალს შორის ფუნდამენტური განსხვავება არის ფისკალური მეხსიერების (FP) ან ფისკალური მეხსიერების (FS) მდებარეობა: POS სისტემისთვის ის ჩაშენებულია ბეჭდვის მოწყობილობაში, ხოლო POS ტერმინალისთვის ის მდებარეობს კომპიუტერში. ერთეული.


ტიპიური სალარო. რუსული კომპანია "SHTRIKH-M"-ის POS სისტემა

POS სისტემა – პროგრამული და ტექნიკის კომპლექსი, რომელიც მუშაობს ფისკალური რეგისტრატორის ბაზაზე. როგორც წესი, შედგება POS კომპიუტერისგან, მონიტორისა და კლავიატურისგან, ქვითრების პრინტერისგან, ფისკალური ჩამწერისგან, კლიენტის დისპლეისაგან, ფულადი უჯრისგან და საბანკო ბარათების წამკითხველისგან. ფულადი ფუნქციების ტიპიური ნაკრები: საქონლის აღრიცხვა და გაცემა, ფულის მიღება და გაცემა, შესყიდვის გაუქმება.

POS სისტემის ყველაზე საინტერესო ნაწილია ფისკალური რეგისტრატორი - ეს არის სისტემის გული და სალარო აპარატების ერთ-ერთი კლასი (CCM).

ქვითრების პრინტერი ჩაშენებული ფისკალური მეხსიერებით მოქმედებს როგორც ფისკალური რეგისტრატორი. ის იღებს ინფორმაციას საკომუნიკაციო არხის მეშვეობით, ამუშავებს და ბეჭდავს. ნაღდი ფულის ტრანზაქციების შესახებ მონაცემები შეიძლება ინახებოდეს ფისკალურ მეხსიერებაში იმდენ ხანს, სანამ საჭირო იქნება გადატვირთვა.

სერვერი გამოიყენება ფისკალური რეგისტრატორიდან საგადასახადო სამსახურში მონაცემების პირდაპირ გადასატანად ფისკალური მონაცემების ოპერატორი - OFD - სპეციალური იურიდიული პირი, რომელიც პასუხისმგებელია ფისკალური მონაცემების მიღებაზე, დამუშავებაზე, შენახვაზე და გადაცემაზე საგადასახადო სამსახურისთვის.

გასულ წელს, რუსი მეწარმეები აქტიურად განიხილავდნენ ონლაინ სალარო აპარატებზე გადასვლას და ჩეკების გაგზავნას საგადასახადო ოფისში OFD-ის მეშვეობით 54-FZ კანონის მიღებასთან დაკავშირებით "სალარო აპარატის აღჭურვილობის გამოყენების შესახებ".


OFD-ის როლი. დიაგრამა სტატიიდან 54-FZ-ის შესახებ და ონლაინ სალარო აპარატებზე გადასვლა

ფედერალური საგადასახადო სამსახური არის რუსეთის ფედერაციის ფედერალური საგადასახადო სამსახური. ყაზახეთში ამ ფუნქციას ფინანსთა სამინისტროს სახელმწიფო შემოსავლების კომიტეტი ასრულებს. ბელორუსიაში კი – გადასახადებისა და გადასახადების სამინისტრო.

რუსეთის ფედერაციაში ფუნქციონირებს რამდენიმე OFD, მაგრამ ყაზახეთში არის მხოლოდ ერთი, სს ყაზახტელეკომი.

2. კანონმდებლობა: სალარო აპარატების გლობალური ონლაინ კონტროლი

საცალო ოპერაციების ონლაინ მონიტორინგი უკვე ფუნქციონირებს ბევრ ქვეყანაში: სამხრეთ კორეა (2005), შვედეთი (2008), კანადა (2010), პოლონეთი (2011), ხორვატია (2013). 2015 წელს ამ მიდგომის დანერგვა დაიწყო ყაზახეთში. ბელორუსიაში კი სალარო აპარატების დისტანციური შემოსავლების კონტროლის სისტემასთან დაკავშირების ვადა გადაიდო 2018 წლის 1 ივლისამდე (იგივე ვადა იგეგმება რუსეთში).

ონლაინ სალარო აპარატების გამოყენება ყაზახეთში რეგულირდება საგადასახადო კოდექსის 90-ე თავით. 2015 წლიდან საწვავის და ალკოჰოლის გამყიდველებმა დაიწყეს ქვითრების გადაცემა საგადასახადო ოფისში ინტერნეტის საშუალებით. მეორე ეტაპზე - 2016 წლიდან - სისტემაში ჩაერთნენ სხვადასხვა მასალისა და აღჭურვილობის საბითუმო ვაჭრობაში ჩართული პირები; ავეჯის, პროგრამული უზრუნველყოფის და ელექტრონიკის საცალო ვაჭრობა; სასტუმროების, რესტორნების, საპარიკმახეროების და კინოთეატრების მფლობელები. პროექტის მესამე ეტაპია გათვალისწინებული.

ჩვენ მივმართავთ კანონებს იმ მიზეზით, რომ ისინი აღწერენ სავალდებულო ტექნიკურ მოთხოვნებს საგადასახადო ოფისში მონაცემების შეგროვებისა და გაგზავნისთვის; ამოცანები განვითარების ინჟინრებისთვის. მაგალითად, ყაზახეთის რესპუბლიკის ფინანსთა მინისტრის ბრძანებით გამოქვეყნდა სალარო აპარატის მოთხოვნების სია ნაღდი ანგარიშსწორების შესახებ ინფორმაციის გადაცემისთვის, რაც ჩვენთვის ძალიან სასარგებლო იყო ფისკალური რეგისტრატორის შემუშავებაში.

3. ფისკალური რეგისტრატორის დიზაინი და ბიზნეს ლოგიკა

ჩვენი ძირითადი განვითარების მოწყობილობა არის თერმული ქვითრის პრინტერი. ასამბლეის სისტემა არის Buildroot. პროგრამირება - Qt.

პროექტი საჭიროებდა განვითარებას:

1) ტექნიკური მახასიათებლები;
2) გაცვლის პროტოკოლი POS კომპიუტერთან, დავარქვათ მას POS-C პროტოკოლი;
3) დემონის აპლიკაცია, რომელიც აკონტროლებს მოწყობილობას:

  • OFD სერვერთან მონაცემთა გაცვლის მოდული CCT პროტოკოლის გამოყენებით (სალარო აპარატურა);
  • POS კომპიუტერთან მონაცემთა გაცვლის მოდული POS-C პროტოკოლის გამოყენებით;
  • ბეჭდვის მართვის მოდული;
  • საკომუნიკაციო ინტერფეისის მართვის მოდული;
  • მონაცემთა ბაზის ურთიერთქმედების მოდული;
  • ვებ სერვერი.

1) მონაცემთა გაცვლის მოდული OFD სერვერთან

მოწყობილობასა და სერვერს შორის გაცვლა ხდება TCP/IP პროტოკოლის გამოყენებით. ამ ურთიერთქმედებაში, მოწყობილობა არის კლიენტი, ხოლო OFD არის სერვერი. პროტოკოლის ბუფერები გამოიყენება როგორც CCP პროტოკოლით გადაცემული ინფორმაციის კოდირებისა და დეკოდირების საფუძველი.

ვებ ინტერფეისის მიზანი:

  1. პარამეტრები;
  2. მოწყობილობის სტატუსის ნახვა;
  3. პროგრამული უზრუნველყოფის განახლება.


ვებ ინტერფეისი

4. დასკვნა

ჩამოთვლილ ტექნოლოგიებზე დაყრდნობით, ჩვენ შევიმუშავეთ მოწყობილობა მრავალი ფუნქციითა და პარამეტრით ვებ ინტერფეისის საშუალებით, სხვადასხვა გაცვლის პროტოკოლების მხარდაჭერა POS კომპიუტერით და პროგრამული უზრუნველყოფის განახლების შესაძლებლობა.

ახლა კი, როგორც ჩანს, Promwad-ის საინჟინრო გუნდი ვერასოდეს შეძლებს მაღაზიაში მოსვლას და რაიმეს ყიდვას, ონლაინ სალარო აპარატების ყველა ამ ინტერიერზე, მონაცემთა გადაცემის პროტოკოლებზე, იურიდიულ მოთხოვნებზე და მთელი ამ სამზარეულოს დაბეჭდვის გარეშე დაუფიქრებლად:
- ჩეკი აიღე, გთხოვ!
- Არა გმადლობთ! :-)

P.S. და ბოლოს, იუმორის მომენტი: ბრიტანელმა უფოლოგებმა ArtAlienTV-ის გუნდიდან აღმოაჩინეს ობიექტი, რომელიც ძველ სალარო აპარატს წააგავდა Curiosity rover-ის სურათებში.

ESC/POS არის ბრძანებების ნაკრები, რომელიც ბეჭდავს ქვითრების პრინტერებს.

შესავალი

სანამ დავიწყებთ, არის სამი რამ, რაც უნდა იცოდეთ ESC/POS-ის შესახებ:

  1. ქვითრის თანამედროვე პრინტერების უმეტესობა მას გარკვეული ფორმით უჭერს მხარს.
  2. წერა მარტივია.
  3. ბრძანებები იწყება ESC სიმბოლოთი (ASCII 27).

სხვათა შორის, ზემოთ მოცემულ ვიდეოში დაბეჭდილი ქვითარი არის მაგალითი escpos-php საცავიდან. მე გადავხედავ ამ ამობეჭდვას, რადგან ის აჩვენებს ყველა ძირითად ESC/POS მახასიათებელს.

სარდლობის სტრუქტურა

ოთხი კონკრეტული ASCII სიმბოლო ჩნდება ბრძანებების თანმიმდევრობაში -

აბრევიატურა სახელი კოდი (Hex)
NUL ნულოვანი 0x00
LF ხაზის არხი 0x0A
ESC გაქცევა 0x1B
გ.ს. ჯგუფის გამყოფი 0x1D

ჩვეულებრივი ტექსტი უბრალოდ იგზავნება პრინტერში, გამოყოფილი ხაზების წყვეტებით. ბრძანებები იწყება ESC-ით ან GS-ით და მოჰყვება დასაბეჭდი სიმბოლო და ზოგჯერ ზოგიერთი რიცხვი

ნომრები უბრალოდ გადაცემულია როგორც სიმბოლო. მაგალითად, '5' გადაეცემა როგორც 0x05.

მაგალითები

ინიციალიზაცია

როდესაც პირველად დაუკავშირდებით პრინტერს, უნდა მოაწყოთ იგი. ეს უბრუნდება ნაგულისხმევ ფორმატირებას და არა სამმაგად ხაზგასმული ორმაგი შრიფტის შრიფტს, რომელსაც შესაძლოა იყენებდა წინა ბეჭდვა.

ფორმატირების გადატვირთვის ბრძანება შემდეგია:

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); $printer -> close();

00000000 1ბ 40 |.@| 00000003

ტექსტი "გამარჯობა სამყარო".

ეს არის ქვითრის უმარტივესი ტიპი და შეიცავს მხოლოდ არაფორმატებულ ტექსტს.

ტექსტი უბრალოდ იგზავნება პრინტერში, გამოყოფილი ხაზის არხებით.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* ტექსტი */ $printer -> text("Hello world\n"); $printer -> cut(); $printer -> close();

00000000 1b 40 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 1d 56 |.@გამარჯობა სამყარო..V| 00000010 41 03 |ა.| 00000012

ხაზის კვება

ამ ბრძანებით პრინტერს შეუძლია სწრაფად გამოტოვოს ხაზების მოცემული რაოდენობა.

ბრძანებები არის:

LF
ESCd[ნომერი]
ESC v[ნომერი]

პირველი ბრძანება იკვებება წინ, მეორე კი პირიქით. მაგალითიდან ჩანს, რომ დემო პრინტერი არ უჭერს მხარს ქაღალდის საპირისპირო კვებას.

Require_once(dirname(__FILE__) . "/escpos-php/Escpos.php"); $printer = new Escpos(); /* Line feeds */ $printer -> text("ABC"); $printer -> feed(7); $printer -> text("DEF"); $printer -> feedReverse(3); $printer -> text("GHI"); $printer -> feed(); $printer -> cut(); $printer -> close();

00000000 1b 40 41 42 43 1b 64 07 44 45 46 1b 65 03 47 48 | [ელფოსტა დაცულია]| 00000010 49 0a 1d 56 41 03 |I..VA.| 00000016

ბეჭდვის რეჟიმები

ბეჭდვის რეჟიმები მოიცავს შრიფტის სიმაღლეს, სიგანეს და გამბედაობას ერთ ატრიბუტში.

ბრძანება არის:

შრიფტის რეჟიმები შექმნილია ატრიბუტების შერჩევის ლოგიკურად OR's ერთად. 0 წარმოადგენს გეგმის შრიფტი A ტექსტს. რეჟიმის დროშებია:

რეჟიმი ნომერი
შრიფტი A (რეჟიმების გარეშე) 0
შრიფტი B 1
ხაზი გაუსვა 8
ორმაგი სიმაღლე 16
ორმაგი სიგანე 32
ხაზი გაუსვით 128

ქვითარის მაგალითი ასახავს თითოეული დროშის ეფექტს.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* შრიფტის რეჟიმები */ $modes = მასივი(პრინტერი:::MODE_FONT_A, პრინტერი:::MODE_FONT_B, პრინტერი:::MODE_EMPHASIZED, პრინტერი:::MODE_DOUBLE_HEIGHT, პრინტერი:::MODE_DOUBLE_WIDTH, პრინტერი:::MO); for($i = 0; $i< 2 ** count($modes); $i++) { $bits = str_pad(decbin($i), count($modes), "0", STR_PAD_LEFT); $mode = 0; for($j = 0; $j < strlen($bits); $j++) { if(substr($bits, $j, 1) == "1") { $mode |= $modes[$j]; } } $printer ->selectPrintMode($mode); $printer -> text("ABCDEFGHIJabcdefghijk\n"); ) $printer -> selectPrintMode(); // გადატვირთეთ $printer -> cut(); $printer -> close();

00000000 1b 40 1b 21 00 41 42 43 44 45 46 47 48 49 4a 61 |.@.!.ABCDEFGHIJa| 00000010 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 80 41 42 |bcdefghijk..!.AB| 00000020 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 |CDEFGHIJabcdefgh| 00000030 69 6a 6b 0a 1b 21 20 41 42 43 44 45 46 47 48 49 |ijk..! ABCDEFGHI| 00000040 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 a0 |Jabcdefghijk..!.| 00000050 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 |ABCDEFGHIJabcdef| 00000060 67 68 69 6a 6b 0a 1b 21 10 41 42 43 44 45 46 47 |ghijk..!.ABCDEFG| 00000070 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b |HIJabcdefghijk..| 00000080 21 90 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 |!.ABCDEFGHIJabcd| 00000090 65 66 67 68 69 6a 6b 0a 1b 21 30 41 42 43 44 45 |efghijk..!0ABCDE| 000000a0 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b |FGHIJabcdefghijk| 000000b0 0a 1b 21 b0 41 42 43 44 45 46 47 48 49 4a 61 62 |...!.ABCDEFGHIJab| 000000c0 63 64 65 66 67 68 69 6a 6b 0a 1b 21 08 41 42 43 |cdefghijk..!.ABC| 000000d0 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 |DEFGHIJabcdefghi| 000000e0 6a 6b 0a 1b 21 88 41 42 43 44 45 46 47 48 49 4a |jk..!.ABCDEFGHIJ| 000000f0 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 28 41 |abcdefghijk..!(A| 00000100 42 43 44 45 464 6 67 |BCDEFGHIJabcdefg| 00000110 68 69 6a 6b 0a 1b 21 a8 41 42 43 44 45 46 47 48 |hijk..!.ABCDEFGH| 00000120 49 4a 61 62 63 64 65 66 67 68 69 6a .Ijc| 00130 18 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 |.ABCDEFGHIJabcde 00000140 66 67 68 69 6a 6b 0a 1b 21 98 41 45 46 9 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a |GHIJabcdefghijk 41 42 43 44 | |. 00000180 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a |EFGHIJabcdefghij| 9 4a 61 |k..! ABCDEFGHIJa|000001a0 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 81 41 42 |bcdefghijk..!.AB| 000001b0 43 44 45 46 47 48 49 4a 61 62 65Gdefghijk. 000001c0 69 6a 6b 0a 1b 21 21 41 42 43 44 45 46 47 48 49 |ijk..!!ABCDEFGHI| 000001d0 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 a1 |Jabcdefghijk..!.| 000001e0 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 |ABCDEFGHIJabcdef| 000001f0 67 68 69 6a 6b 0a 1b 21 11 41 42 43 44 45 46 47 |ghijk..!.ABCDEFG| 00000200 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b |HIJabcdefghijk. .| 00000210 21 91 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 |!.ABCDEFGHIJabcd| 00000220 65 66 67 68 69 6a 6b 0a 1b 21 31 41 42 43 44 45 |efghijk..!1ABCDE| 00000230 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b |FGHIJabcdefghijk| 00000240 0a 1b 21 b1 41 42 43 44 45 46 47 48 49 4a 61 62 |...!.ABCDEFGHIJab| 00000250 63 64 65 66 67 68 69 6a 6b 0a 1b 21 09 41 42 43 |cdefghijk..!.ABC| 00000260 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 |DEFGHIJabcdefghi| 00000270 6a 6b 0a 1b 21 89 41 42 43 44 45 46 47 48 49 4a |jk..!.ABCDEFGHIJ| 00000280 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 29 41 |abcdefghijk..!)A| 00000290 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 |BCDEFGHIJabcdefg| 000002a0 68 69 6a 6b 0a 1b 21 a9 41 42 43 44 45 46 47 48 |hijk..!.ABCDEFGH| 000002b0 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 |IJabcdefghijk..!| 000002c0 19 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 |.ABCDEFGHIJabcde| 000002d0 66 67 68 69 6a 6b 0a 1b 21 99 41 42 43 44 45 46 |fghijk..!.ABCDEF| 000002e0 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a |GHIJabcdefghijk.| 000002f0 1b 21 39 41 42 43 44 45 46 47 48 49 4a 61 62 63 |.!9ABCDEFGHIJabc| 00000300 64 65 66 67 68 69 6a 6b 0a 1b 21 b9 41 42 43 44 |defghijk..!.ABCD| 00000310 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a |EFGHIJabcdefghij| 00000320 6b 0a 1b 21 00 41 42 43 44 45 46 47 48 49 4a 61 |კ..!.ABCDEFGHIJa| 00000330 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 80 41 42 |bcdefghijk..!.AB| 00000340 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 |CDEFGHIJabcdefgh| 00000350 69 6a 6b 0a 1b 21 20 41 42 43 44 45 46 47 48 49 |ijk..! ABCDEFGHI| 00000360 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 a0 |Jabcdefghijk..!.| 00000370 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 |ABCDEFGHIJabcdef| 00000380 67 68 69 6a 6b 0a 1b 21 10 41 42 43 44 45 46 47 |ghijk..!.ABCDEFG| 00000390 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b |HIJabcdefghijk..| 000003a0 21 90 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 |!.ABCDEFGHIJabcd| 000003b0 65 66 67 68 69 6a 6b 0a 1b 21 30 41 42 43 44 45 |efghijk..!0ABCDE| 000003c0 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b |FGHIJabcdefghijk| 000003d0 0a 1b 21 b0 41 42 43 44 45 46 47 48 49 4a 61 62 |...!.ABCDEFGHIJab| 000003e0 63 64 65 66 67 68 69 6a 6b 0a 1b 21 08 41 42 43 |cdefghijk..!.ABC| 000003f0 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 |DEFGHIJabcdefghi| 00000400 6a 6b 0a 1b 21 88 41 42 43 44 45 46 47 48 49 4a |jk..!.ABCDEFGHIJ| 00000410 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 28 41 |abcdefghijk. .!(A| 00000420 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 |BCDEFGHIJabcdefg| 00000430 68 69 04a 4b 46 47 48 |ჰიჯკ..!.ABCDEFGH| 00000440 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 |IJabcdefghijk ..! 00000450 18 41 42 453 46 46 6 4 65 |.ABCDEFGHIJabcde| 00000460 66 67 68 69 6a 6b 0a 1b 21 98 41 42 43 44 45 46 |fghijk..!.ABCDEF|00000470 47 48 49 4a 61 62 63 64 65 66 69 68 0 1ბ 21 38 41 42 43 44 45 46 47 48 49 4a 61 62 63 |.!8ABCDEFGHIJabc 00000490 64 65 66 67 68 69 6a 6b 0a 1b 21 b8 41 42 43 4k4 63 64 65 66 67 68 69 6a |EFGHIJabcdefghij|. 9 6a 6b 0a 1b 21 81 41 42 bcdefghijk. .!.AB| 2 63 64 65 66 67 68 69 6ა 6b 0a 1b 21 a1 |Jabcdefghijk..!.| 00000500 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 |ABCDEFGHIJabcdef| 00000510 67 68 69 6a 6b 0a 1b 21 11 41 42 43 44 45 46 47 |ghijk..!.ABCDEFG| 00000520 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b |HIJabcdefghijk..| 00000530 21 91 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 |!.ABCDEFGHIJabcd| 00000540 65 66 67 68 69 6a 6b 0a 1b 21 31 41 42 43 44 45 |efghijk..!1ABCDE| 00000550 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b |FGHIJabcdefghijk| 00000560 0a 1b 21 b1 41 42 43 44 45 46 47 48 49 4a 61 62 |...!.ABCDEFGHIJab| 00000570 63 64 65 66 67 68 69 6a 6b 0a 1b 21 09 41 42 43 |cdefghijk..!.ABC| 00000580 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 |DEFGHIJabcdefghi| 00000590 6a 6b 0a 1b 21 89 41 42 43 44 45 46 47 48 49 4a |jk..!.ABCDEFGHIJ| 000005a0 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 29 41 |abcdefghijk..!)A| 000005b0 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 66 67 |BCDEFGHIJabcdefg| 000005c0 68 69 6a 6b 0a 1b 21 a9 41 42 43 44 45 46 47 48 |hijk..!.ABCDEFGH| 000005d0 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a 1b 21 |IJabcdefghijk..!| 000005e0 19 41 42 43 44 45 46 47 48 49 4a 61 62 63 64 65 |.ABCDEFGHIJabcde| 000005f0 66 67 68 69 6a 6b 0a 1b 21 99 41 42 43 44 45 46 |fghijk..!.ABCDEF| 00000600 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a 6b 0a |GHIJabcdefghijk.| 00000610 1b 21 39 41 42 43 44 45 46 47 48 49 4a 61 62 63 |.!9ABCDEFGHIJabc| 00000620 64 65 66 67 68 69 6a 6b 0a 1b 21 b9 41 42 43 44 |defghijk. .!.ABCD| 00000630 45 46 47 48 49 4a 61 62 63 64 65 66 67 68 69 6a |EFGHIJabcdefghij| 00000640 6b 0a 1b 21 00 1d 56 41 03 |კ..!..VA.| 00000649

ხაზი გაუსვით

ბრძანება არის:

ESC - [ნომერი]

არგუმენტი დაყენებულია 0-ზე ხაზგასმის გარეშე, 1 ხაზგასმისთვის, 2 მძიმე ხაზგასმისთვის.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* ხაზი გაუსვით */ for($i = 0; $i< 3; $i++) { $printer ->setUnderline ($i); $printer -> text("სწრაფი ყავისფერი მელა გადახტა ზარმაცი ძაღლზე\n"); ) $printer -> setUnderline(0); // გადატვირთეთ $printer -> cut(); $printer -> close();

00000000 1b 40 1b 2d 00 54 68 65 20 71 75 69 63 6b 20 62 | [ელფოსტა დაცულია]სწრაფი ბ| 00000010 72 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f |rown fox jumps o| 00000020 76 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 |ვერ ზარმაცი ძაღლი| 00000030 0a 1b 2d 01 54 68 65 20 71 75 69 63 6b 20 62 72 |..-.სწრაფი ბრ| 00000040 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 |საკუთარი მელა jumps ov| 00000050 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a |ერ ზარმაცი ძაღლი.| 00000060 1b 2d 02 54 68 65 20 71 75 69 63 6b 20 62 72 6f |.-.სწრაფი ძმაო| 00000070 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 65 |wn fox jumps ove| 00000080 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a 1b |რ ზარმაცი ძაღლი..| 00000090 2d 00 1d 56 41 03 |-..VA.| 00000096

ჭრის

ბრძანება არის:

ESC V [ნომერი]

როგორც ჩანს, არგუმენტი წარმოადგენს „ნაწილობრივ“ (65) თუ „სრულ“ (66) ჭრას, მაგრამ არავითარ გავლენას არ ახდენს ჩემს პრინტერის მოდელზე.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* ჭრის */ for($i = 0; $i< 5; $i++) { $printer ->cut(პრინტერი:::CUT_PARTIAL); $printer -> cut(Printer:::CUT_FULL); ) $printer -> cut(); $printer -> close();

00000000 1b 40 1d 56 42 03 1d 56 41 03 1d 56 42 03 1d 56 | [ელფოსტა დაცულია]| 00000010 41 03 1d 56 42 03 1d 56 41 03 1d 56 42 03 1d 56 |A..VB..VA..VB..V| 00000020 41 03 1d 56 42 03 1d 56 41 03 1d 56 41 03 |A..VB..VA..VA.| 0000002e

ხაზგასმა

ბრძანება არის:

ESC E [ნომერი]

გამოიყენეთ 1 ხაზგასმის გასააქტიურებლად და 0 მის გასათიშად.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* ხაზგასმა */ for($i = 0; $i< 2; $i++) { $printer ->setEmphasis($i == 1); $printer -> text("სწრაფი ყავისფერი მელა გადახტა ზარმაცი ძაღლზე\n"); ) $printer -> setEmphasis(false); // გადატვირთეთ $printer -> cut(); $printer -> close();

00000000 1b 40 1b 45 00 54 68 65 20 71 75 69 63 6b 20 62 | [ელფოსტა დაცულია]სწრაფი ბ| 00000010 72 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f |rown fox jumps o| 00000020 76 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 |ვერ ზარმაცი ძაღლი| 00000030 0a 1b 45 01 54 68 65 20 71 75 69 63 6b 20 62 72 |..E.The quick br| 00000040 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 |საკუთარი მელა jumps ov| 00000050 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a |ერ ზარმაცი ძაღლი.| 00000060 1b 45 00 1d 56 41 03 |.E..VA.| 00000067

ორმაგი დარტყმა

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* ორმაგი დარტყმა (ძირითადად იგივეა, რაც აქცენტი) */ for($i = 0; $i< 2; $i++) { $printer ->setDoubleStrike($i == 1); $printer -> text("სწრაფი ყავისფერი მელა გადახტა ზარმაცი ძაღლზე\n"); ) $printer -> setDoubleStrike(false); $printer -> cut(); $printer -> close();

00000000 1b 40 1b 47 00 54 68 65 20 71 75 69 63 6b 20 62 | [ელფოსტა დაცულია]სწრაფი ბ| 00000010 72 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f |rown fox jumps o| 00000020 76 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 |ვერ ზარმაცი ძაღლი| 00000030 0a 1b 47 01 54 68 65 20 71 75 69 63 6b 20 62 72 |..G.The quick br| 00000040 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 |საკუთარი მელა jumps ov| 00000050 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a |ერ ზარმაცი ძაღლი.| 00000060 1ბ 47 00 1დ 56 41 03 |.გ..ვა.| 00000067

შრიფტები

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* შრიფტები (ბევრ პრინტერს არ აქვს "შრიფტი C") */ $fonts = მასივი(პრინტერი:::FONT_A, პრინტერი:::FONT_B, პრინტერი:::FONT_C); for($i = 0; $i< count($fonts); $i++) { $printer ->setFont($fonts[$i]); $printer -> text("სწრაფი ყავისფერი მელა გადახტა ზარმაცი ძაღლზე\n"); ) $printer -> setFont(); // გადატვირთეთ $printer -> cut(); $printer -> close();

00000000 1b 40 1b 4d 00 54 68 65 20 71 75 69 63 6b 20 62 | [ელფოსტა დაცულია]სწრაფი ბ| 00000010 72 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f |rown fox jumps o| 00000020 76 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 |ვერ ზარმაცი ძაღლი| 00000030 0a 1b 4d 01 54 68 65 20 71 75 69 63 6b 20 62 72 |..M.The quick br| 00000040 6f 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 |საკუთარი მელა jumps ov| 00000050 65 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a |ერ ზარმაცი ძაღლი.| 00000060 1b 4d 02 54 68 65 20 71 75 69 63 6b 20 62 72 6f |.M.The quick bro| 00000070 77 6e 20 66 6f 78 20 6a 75 6d 70 73 20 6f 76 65 |wn fox jumps ove| 00000080 72 20 74 68 65 20 6c 61 7a 79 20 64 6f 67 0a 1b |რ ზარმაცი ძაღლი..| 00000090 4d 00 1d 56 41 03 |მ..ვა.| 00000096

დასაბუთება

ბრძანება არის:

ESC a [ნომერი]

გამოიყენეთ 0 მარცხნივ დასასაბუთებლად, 1 ტექსტის ცენტრში, ან 2 მარჯვნივ გასასწორებლად.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* დასაბუთება */ $justification = მასივი(პრინტერი:::JUSTIFY_LEFT, პრინტერი:::JUSTIFY_CENTER, პრინტერი:::JUSTIFY_RIGHT); for($i = 0; $i< count($justification); $i++) { $printer ->setJustification($justification[$i]); $printer -> text("A man a plan a canal panama\n"); ) $printer -> setJustification(); // გადატვირთეთ $printer -> cut(); $printer -> close();

00000000 1b 40 1b 61 00 41 20 6d 61 6e 20 61 20 70 6c 61 | [ელფოსტა დაცულია]კაცი ა პლა| 00000010 6e 20 61 20 63 61 6e 61 6c 20 70 61 6e 61 6d 61 |n a canal panama| 00000020 0a 1b 61 01 41 20 6d 61 6e 20 61 20 70 6c 61 6e |..a.კაცი გეგმა| 00000030 20 61 20 63 61 6e 61 6c 20 70 61 6e 61 6d 61 0a | არხი პანამა.| 00000040 1b 61 02 41 20 6d 61 6e 20 61 20 70 6c 61 6e 20 |.ა.კაცი გეგმა | 00000050 61 20 63 61 6e 61 6c 20 70 61 6e 61 6d 61 0a 1b |არხი პანამა..| 00000060 61 00 1დ 56 41 03 |ა..ვა.| 00000066

შტრიხკოდები

ბრძანებები არის:

GS h [ნომერი]
ESC k [ნომერი] [ტექსტი] NUL

პირველი ბრძანება ადგენს შტრიხკოდის სიმაღლეს - იზომება წერტილებში, ხოლო მეორე ბეჭდავს რეალურ შტრიხკოდს. რიცხვი წარმოადგენს შტრიხკოდის სტანდარტს, რომელიც უმეტეს მიზნებისთვის უნდა იყოს „4“, რომელიც წარმოადგენს CODE39-ს. 6 სტანდარტი მხარდაჭერილია PHP დრაივერის მიერ.

შეამჩნევთ, რომ დრაივერის ხარვეზების ან პრინტერის შეუთავსებლობის გამო, ყველა შტრიხკოდი არ იბეჭდება! როგორც ზემოთ, ჩემი რჩევაა გამოიყენოთ CODE39, თუ ამას წააწყდებით.

მოითხოვეთ __DIR__. "/autoload.php"; გამოიყენეთ Mike42\Escpos\Printer; გამოიყენეთ Mike42\Escpos\PrintConnectors\FilePrintConnector; $connector = ახალი FilePrintConnector ("/dev/usb/lp0"); $printer = ახალი პრინტერი ($ connector); /* შტრიხკოდები */ $შტრიხკოდები = მასივი(პრინტერი:::BARCODE_UPCA, პრინტერი:::BARCODE_UPCE, პრინტერი:::BARCODE_JAN13, პრინტერი:::BARCODE_JAN8, პრინტერი:::BARCODE_CODE39, პრინტერი:::BARCODE_IT: BARCODE_CODABAR); $printer -> setBarcodeHeight(80); for($i = 0; $i< count($barcodes); $i++) { $printer ->text("შტრიხკოდი $i " . "\n"); $printer -> შტრიხკოდი ("9876", $barcodes[$i]); $printer -> feed(); ) $printer -> cut(); $printer -> close();

00000000 1b 40 1d 68 50 42 61 72 63 6f 64 65 20 30 20 0a | [ელფოსტა დაცულია] 0 .| 00000010 1d 6b 00 39 38 37 36 00 0a 42 61 72 63 6f 64 65 |.k.9876..შტრიხკოდი| 00000020 20 31 20 0a 1d 6b 01 39 38 37 36 00 0a 42 61 72 | 1 ..k.9876..ბარი| 00000030 63 6f 64 65 20 32 20 0a 1d 6b 02 39 38 37 36 00 |კოდი 2 ..k.9876.| 00000040 0a 42 61 72 63 6f 64 65 20 33 20 0a 1d 6b 03 39 |.შტრიხკოდი 3 ..k.9| 00000050 38 37 36 00 0a 42 61 72 63 6f 64 65 20 34 20 0a |876..შტრიხკოდი 4 .| 00000060 1d 6b 04 39 38 37 36 00 0a 42 61 72 63 6f 64 65 |.k.9876..შტრიხკოდი| 00000070 20 35 20 0a 1d 6b 05 39 38 37 36 00 0a 42 61 72 | 5 ..k.9876..ბარი| 00000080 63 6f 64 65 20 36 20 0a 1d 6b 06 39 38 37 36 00 |კოდი 6 ..k.9876.| 00000090 0a 1d 56 41 03 |..VA.| 00000095

პროტოკოლის საფუძველი

ნებისმიერი ქვითრის პრინტერის სტანდარტული ამოცანაა ტექსტის დაბეჭდვა. გარდა ამისა, შეგიძლიათ შექმნათ პერსონალური პარამეტრები შრიფტის, ზომის, სიმკვრივისა და მოწყობილობის სხვა პარამეტრებისთვის. ყველა ინფორმაცია (სასარგებლო და საკონტროლო) გადაიცემა ტექსტის სახით, პრინტერი „იჭერს“ საკონტროლო ბრძანებებს, გამოყოფს მათ და ბეჭდავს მხოლოდ ტექსტურ ნაწილს. ამრიგად, კონტროლი შეიცავს თავად ტექსტს. სერვისის ნაწილის საინფორმაციო ნაწილისგან გამოსაყოფად გამოიყენება სპეციალური სიმბოლოები, რომლებიც არ იბეჭდება და არ შეიძლება შეიყვანოთ კომპიუტერის კლავიატურაზე. ასეთი სიმბოლოს მაგალითია „ESC“ ან ათობითი კოდის სიმბოლო 27. ამ სიმბოლოს პრინტერზე გაგზავნა ნიშნავს, რომ მას მოჰყვება ბეჭდვის მართვის მოკლე ბრძანება. ESC/POS პროტოკოლის ბრძანებების აღწერა ჩვეულებრივ მოყვება მოწყობილობას და არის პრინტერის დოკუმენტაციის ნაწილი.

პრინტერის სავარაუდო შესაძლებლობები

შემდეგი ქმედებები შეიძლება განისაზღვროს, როგორც ნებისმიერი სტანდარტული ქვითრის პრინტერის სავარაუდო შესაძლებლობები:

  • შრიფტის ზომის გაზრდა და შემცირება;
  • ინვერსიული შრიფტის გააქტიურება (თეთრი ასოები შავ ფონზე)
  • შტრიხკოდების ბეჭდვა;
  • პრინტერის სიგნალის გააქტიურება;
  • ელექტრული სიგნალის მიწოდება სალაროს უჯრის გასახსნელად;
  • პრინტერზე დანის გააქტიურება ქაღალდის დასაჭრელად.

პრინტერის მოდელისა და შესაძლებლობების მიხედვით, ეს მოქმედებები გააქტიურებულია ESC/POS ბრძანებების გამოყენებით. ამ შემთხვევაში, პრინტერი აკონტროლებს თითოეულ ბრძანებას და დაუყოვნებლივ ასრულებს მას.

როდის გამოვიყენოთ ESC/POS ბრძანებები

ESC/POS ბრძანებების გამოყენება შესაძლებელია, როდესაც პრინტერი მხარს უჭერს მათ (თითქმის ყველა პრინტერს) და უშუალოდ პრინტერთან მუშაობისას, Windows-ის შუალედური დრაივერის გამოყენების გარეშე. Microinvest Warehouse Pro Light აკონტროლებს მოწყობილობას პირდაპირ, აგზავნის საჭირო ბრძანებებს პრინტერზე. ისინი უნაკლოდ მუშაობენ USB პრინტერის გამოყენებისას შუალედური დრაივერის და USB-დან COM ემულაციის გარეშე.

როდესაც შეუძლებელია ESC/POS ბრძანებების გამოყენება

არის 3 შემთხვევა, როდესაც ESC/POS ბრძანებების გამოყენება პრინციპში შეუძლებელია: 1. ფისკალური რეგისტრატორები. ფისკალური პრინტერები იყენებენ კომპლექსურ საკომუნიკაციო პროტოკოლს, რომელიც აბსოლუტურად შეუთავსებელია ESC/POS პროტოკოლთან. შედეგად, პრინტერი არ პასუხობს ESC/POS ბრძანებებს; 2. პრინტერის მართვისას დაინსტალირებული Windows დრაივერის მეშვეობით. ამ შემთხვევაში დრაივერი თავად ასრულებს ESC/POS ბრძანებებს და კატეგორიულად უარყოფს პროგრამული უზრუნველყოფის მიერ გამოგზავნილ ასეთ ბრძანებებს. შედეგად, პრინტერზე არანაირი გავლენა არ არის; 3. ბეჭდვის შუალედური საშუალებების გამოყენებისას, როგორიცაა ბეჭდვის სერვერი ან სხვა მსგავსი ტექნოლოგიები. ამ შემთხვევაში, ESC/POS ბრძანებები იფილტრება და იკარგება კომუნიკაციის დროს, პრინტერთან მისვლის გარეშეც კი. სისტემის აგებისას აუცილებელია პრინტერის მართვის სწორად დაგეგმვა. ჩვენ გირჩევთ, რომ თითოეული პრინტერი პირდაპირ დაუკავშირდეს საკონტროლო კომპიუტერს და იმუშაოს პირდაპირ პროტოკოლის მიხედვით, დრაივერის გარეშე.

ბრძანების კოდირება

ESC/POS ბრძანებები დაშიფრულია ერთი ან მეტი სპეციალური სიმბოლოს და ბრძანების პარამეტრების მეშვეობით. ეს ყველაფერი აღწერილია შესაბამის განყოფილებაში (Header, Details, Totals ან Footer) პრინტერის პარამეტრებში Microinvest Warehouse Pro Light-ში ან Microinvest Device Manager-ში. ძირითადი საკონტროლო ბრძანებებია:

მათი მოქმედებები აღწერილია პრინტერის დოკუმენტაციაში და სტანდარტიზებულია ESC/POS პროტოკოლით.

პოპულარული გუნდები

ყველაზე პოპულარული ESC/POS პროტოკოლის ბრძანებების სავარაუდო სია:

  • !- ააქტიურებს შრიფტს A;
  • !- ააქტიურებს შრიფტს B;
  • !- ორმაგი სიმაღლის შრიფტი;
  • !- ორმაგი სიგანის შრიფტი;
  • !- შრიფტი A ნორმალური სიმაღლით;
  • - შეიცავს თამამი შრიფტს;
  • - გამორთავს თამამი შრიფტს;
  • - მოიცავს ინვერსიულ ბეჭდვას;
  • - გამორთავს ინვერსიულ ბეჭდვას;
  • i – ააქტიურებს დანას პრინტერზე.

მიუხედავად იმისა, რომ ჩამოთვლილი ბრძანებები სტანდარტიზებულია სხვადასხვა პრინტერების ESC/POS პროტოკოლებიდან ნაწყვეტების მიხედვით, თითოეულ მათგანს აქვს ბრძანების შესრულების საკუთარი ტექნოლოგია და შედეგები შეიძლება განსხვავდებოდეს მწარმოებლის ან მოდელის მიხედვით. სასურველი ეფექტის მისაღწევად, თქვენ უნდა შეამოწმოთ და აირჩიოთ ბრძანებები, რომლებიც შესრულებულია პრინტერების მიერ.

Სხვა ინფორმაცია

ESC/POS არის ძალიან ძლიერი პრინტერის კონტროლის ტექნოლოგია. ამ პროტოკოლის მეშვეობით შეგიძლიათ მიიღოთ შესანიშნავი შედეგები თითქმის ყველა თანამედროვე პრინტერზე. სამწუხაროდ, არ არსებობს 100% თავსებადობა სხვადასხვა მოწყობილობებს შორის, ამიტომ თითოეული ბრძანება უნდა შემოწმდეს რეალურ კონკრეტულ მოწყობილობაზე. ზოგიერთი ბრძანება დამოკიდებულია შესრულების დროზე. ასე რომ, მაგალითად, დანის გააქტიურებამ შეიძლება წინ წაიწიოს ბეჭდვითი შიგთავსით და გაჭრა ქვითარი არასწორ ადგილას. ამიტომ, ESC/POS ბრძანებების გამოყენება მოითხოვს რეალურ ტესტირებას და ფრთხილად კონფიგურაციას, პრინტერის მოდელის მიხედვით.

ზოგიერთი სასარგებლო რესურსი

  • დოკუმენტაცია ყველა პროდუქტისთვის;
  • Microinvest ტექნიკური მხარდაჭერის ფორუმი, სადაც შეგიძლიათ სწრაფად მიიღოთ პასუხი თქვენს კითხვაზე;


 

შეიძლება სასარგებლო იყოს წაკითხვა: