Подключение фискального принтера к приложению C # - PullRequest
0 голосов
/ 29 августа 2018

Недавно я разработал программное обеспечение Point of Sale. В моей стране (Р. Македония) мы используем фискальные принтеры, которые общаются через порт RS. Компании, которые продают фискальный принтер, дали мне файл .exe, и они сказали, что мне нужно отправлять команды на фискальный принтер через этот .exe. Я немного сбит с толку, как это может работать, и мой другой вопрос, как я могу получить данные из моего datagridview и отправить их на фискальный принтер? Вот ссылка с данными продавца на фискальный принтер:

https://www.accent.mk/downloads/Control_codes_PF550_v136_EN.doc

Пока вот что я попробовал:

using System;
using Accent.Ecr;

namespace ecrTest
{
    class Example
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Ecr DLL Version: " + Ecr.GetVersion());

                Ecr ecr = new Ecr("COM2", 9600);

                //open serial port
                ecr.OpenPort();

                //open fiscal receipt
                ecr.WriteCommand(48, "1,0000,1");

                //print receipt item, vat - А, quantity - 1.000, price - 10.00
                ecr.WriteCommand(49, "ТЕСТ АРТИКЛ\tА10.00*1.000");
                //print receipt item, vat - Б, quantity - 1.000, price - 10.00
                ecr.WriteCommand(49, EcrTranslator.ConvertCp1251ToCyrillicByteArray("TEST ARTIKL\tB10.00*1.000"));
                //print receipt item (49 - '1' in CP1251 encoding), vat - Б, quantity - 1.000, price - 10.00
                ecr.WriteCommand(EcrTranslator.ConvertCp1251CharToByte('1'), "ТЕСТ АРТИКЛ\tБ10.00*1.000");
                //print receipt item (49 - '1' in CP1251 encoding), vat - В, quantity - 1.000, price - 10.00
                ecr.WriteCommand(EcrTranslator.ConvertCp1251CharToByte('1'), EcrTranslator.ConvertCp1251ToCyrillicByteArray("TEST ARTIKL\tV10.00*1.000"));

                //payment with card
                ecr.WriteCommand(53, "\tD30.00");
                //payment with cash
                ecr.WriteCommand(53, "\tP30.00");

                //close fiscal receipt
                ecr.WriteCommand(56, "");

                //close serial port
                ecr.ClosePort();

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
...