prashant1111 Ответов: 3

Печать на термопринтере с помощью .net


Привет,

Я хочу распечатать квитанцию на термопринтере без использования драйвера OPOS.

Пожалуйста, направьте меня в этом деле.

Спасибо

Abdul Quader Mamun

Возможно ли это без водителя?

prashant1111

Да, это возможно, но я не знаю как ?

Albin Abel

вы также можете использовать команды ESC/POS. так будет проще. Некоторые термопринтеры, подключенные к USB / параллельному порту,могут быть напечатаны с помощью метода печати .net. Не нужны водители. Я использовал ESC/POS для печати квитанции, подключенной к COM, и печати принтера штрих-кодов, подключенного к USB, используя обычные драйверы печати, доступные в .Net

prashant1111

Как использовать эту команду

prashant1111

Да, альбинос, ты прав. Мой принтер подключен через порт, и я хочу печатать с помощью этого порта. Итак, какой подход я использую для достижения этой цели? Но имейте в виду, что в системе не установлен драйвер OPOS. Я хочу распечатать квитанцию на этом принтере.

Marc Gabrie

Сначала вы должны определить, какой командный язык принтера поддерживает ваш принтер, так как ESC/POS-не единственный!!! Если у вас есть принтер Zebra, то ZPL или EPL нужны не ESC/POS. Другие бренды также имеют свои собственные языки. Итак, прежде всего, проверьте это,а затем продолжайте.

3 Ответов

Рейтинг:
2

varrgeesh

1. Создайте дескриптор для принтера с помощью порта принтера
2.Функция WriteFile(ручки,"ул.", "лен", 0,нуль)


Member 10296413

Привет мне нужно, чтобы напечатать рецепт в термальный принтер, подключенный в USB

Рейтинг:
1

Albin Abel

Привет, создайте универсальный текстовый принтер на ПК (добавьте новый принтер...или google it how to add a generic text printer)

Посмотрите в этой статье, Как отправить необработанные данные на принтер.

http://support.microsoft.com/kb/322090[^]

с его помощью можно отправлять на принтер команды ESC/POS.

Для ссылки на команды ESC/POS используйте эту ссылку http://www.google.co.in/url?sa=t&source=web&cd=1&ved=0CBYQFjAA&url=http%3A%2F%2Fnicholas.piasecki.name%2Fblog%2Fwp-content%2Fuploads%2F2009%2F12%2FESC-POS-Command-Guide.pdf&ei=kaxbTcvZI8uXcde_iNoK&usg=AFQjCNFX385l9jOit_86cfsoHmpH4kPKkq[^]

или погуглите его еще раз


Рейтинг:
0

Member 10296413

public partial class frmBook : Form
   {



       public const Int32 FILE_ATTRIBUTE_NORMAL = 128;//Intializing Port Attributes
       public const Int32 INVALID_HANDLE_VALUE = -1;
       public const Int32 GENERIC_READ = -2147483648;
       public const Int32 GENERIC_WRITE = 1073741824;
       public const Int32 CREATE_NEW = 1;
       public const Int32 CREATE_ALWAYS = 2;
       public const Int32 OPEN_EXISTING = 3;




 protected void Print_Ticket(string ticketNo, string seatNo, string Showtime, string Price)
        {

            IntPtr ptr = CreateFile("LPT1", GENERIC_WRITE, 0,
             IntPtr.Zero, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero);

            /* Is bad handle? INVALID_HANDLE_VALUE */
            if (ptr.ToInt32() == -1)
            {
                /* ask the framework to marshall the win32 error code to an exception */
                Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
            }
            else
            {

                /////// Print Reciept Print//////
                FileStream lpt = new FileStream(ptr, FileAccess.ReadWrite);
                byte[] LineFeedChar = new byte[] { 13, 10 };
                byte[] BackNormalChar = new byte[] { 27, 33, 0 };
                byte[] CuttingChar = new byte[] { 29, 86, 66 };

                Byte[] buf_TheaterName = new Byte[8048];
                Byte[] buf_Address = new Byte[8048];
                Byte[] buf_Line1 = new Byte[8048];
                Byte[] buf_TicketNo = new Byte[8048];
                Byte[] buf_Date = new Byte[8048];
                Byte[] buf_SeatNo = new Byte[8048];
                Byte[] buf_Showtime = new Byte[8048];
                Byte[] buf_Price = new Byte[8048];
                Byte[] buf_FooterMsg = new Byte[8048];

                StringBuilder strFooter = new StringBuilder();
                lpt.Write(CuttingChar, 0, 3); //
                buf_TheaterName = System.Text.Encoding.ASCII.GetBytes("           " + cmbTheatre.Text.ToString() + "             ");
                lpt.Write(buf_TheaterName, 0, buf_TheaterName.Length);
                lpt.Write(LineFeedChar, 0, 2);
                buf_TicketNo = System.Text.Encoding.ASCII.GetBytes("Ticket No :".PadLeft(9) + ticketNo.PadLeft(3));//
                lpt.Write(buf_TicketNo, 0, buf_TicketNo.Length);//

                lpt.Write(LineFeedChar, 0, 2);
                buf_Date = System.Text.Encoding.ASCII.GetBytes("Date      :".PadLeft(9) + dteBookDate.Text.PadLeft(3));
                lpt.Write(buf_Date, 0, buf_Date.Length);
                lpt.Write(LineFeedChar, 0, 2);

                buf_SeatNo = System.Text.Encoding.ASCII.GetBytes("Seat No   :".PadLeft(9) + seatNo.PadLeft(3));
                lpt.Write(buf_SeatNo, 0, buf_SeatNo.Length);
                lpt.Write(LineFeedChar, 0, 2);
                buf_Showtime = System.Text.Encoding.ASCII.GetBytes("Show Time :".PadLeft(9) + Showtime.PadLeft(3));
                lpt.Write(buf_Showtime, 0, buf_Showtime.Length);
                lpt.Write(LineFeedChar, 0, 2);
                buf_Price = System.Text.Encoding.ASCII.GetBytes("Price     :".PadLeft(9) + Price.PadLeft(3));
                lpt.Write(buf_Price, 0, buf_Price.Length);
                lpt.Write(LineFeedChar, 0, 2);

                buf_FooterMsg = System.Text.Encoding.ASCII.GetBytes("              Thank You  Visit Agin      ");
                lpt.Write(buf_FooterMsg, 0, buf_FooterMsg.Length);
                lpt.Write(LineFeedChar, 0, 2);
                lpt.Write(CuttingChar, 0, 3);
                lpt.Write(BackNormalChar, 0, 3);
                
                lpt.Close();
            }
}


Member 10626384

как разорвать строку, если имя какой-то пример персонажа новые ледовые и хоккей теперь может быть
нам нужно сломать лед