Недавно я разработал программное обеспечение 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);
}
}
}
}