Автор: alespopov
Дата сообщения: 09.01.2011 13:46
Я в как-то давно, когда .NET изучал, делал программу которая печатала просто наклейки с номерами. Перебрал кучу програм, т.к. надеялся найти готовую. В итоге был найден эмулятор принтера, который сохранял в текстовый файл что в него поступает. Там оказался очень простой синтаксис команд, на основе которого я программу и сочинил.
Т.е. я в одной программе, которая поддерживала мой термопринтер, которая стоит просто немеренно, состряпал пример что должен получить на выходе, - в итоге получил заготовку. Потом её, из своей программы, уже на выход LPT, только номера менял ....
Код:
// Подготовка к печати, через sw.WriteLine("");
prn.PrintLine("<!<R>SPEED 2.0");
prn.PrintLine("DENSITY 9");
prn.PrintLine("SET PEEL OFF");
prn.PrintLine("DIRECTION 0");
prn.PrintLine(strGap); /* А что есть GAP - растояние между этикетками по длине */
prn.PrintLine("REFERENCE 0,0");
// Конец подготовки к печати.
Sn1o="BARCODE 72,0,\"25\",31,1,0,2,4,\""; // 36 -3 , 72 -2
Sn2o="BARCODE 312,0,\"25\",31,1,0,2,4,\""; // 260 -3, 312 -2
// Собстенно сама печать номеров на наклейках
for (UInt64 i = 0; i < n; i++)
{
prn.PrintLine("SET CUTTER OFF");
prn.PrintLine(strTapeSize); // !!!80, -3 62 -3
prn.PrintLine("CLS");
//
Sn1 = Sn1o+System.Convert.ToString(Sn)+"\"";
Sn2 = Sn2o+System.Convert.ToString(Sn+1)+"\"";
//Sn3 = Sn3o+System.Convert.ToString(Sn+2)+"\"";
Sn=Sn+2; // !!! 2 - for 2 наклейки по вертикали, бывает что и три, в зависимости от ленты.
prn.PrintLine(Sn1);
prn.PrintLine(Sn2);
//prn.PrintLine(Sn3);
// End - печать строки
prn.PrintLine("PRINT 1,1");
...