Термопринтер не печатает текст больше, чем страница А4 - PullRequest
0 голосов
/ 21 января 2020

Я разрабатываю POS-приложение, и мне нужно распечатать на чековом принтере. Код термопринтера не может распечатать длинную квитанцию ​​(размер листа больше А4). Он пропускает остаток текста.

Вот код, который я использую в обработчике событий printDocument.

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        try
        {

                int CurrentX = 5;
                int CurrentY = GetHeight(2);
                int offset = 10;

                //========================Actual Cart is printed here=========
                for (int k = 0; k < grdSalesInvoice.Rows.Count; k++)
                {

                    //I have 45 items to print, but it only shows 35 items in print and also skips footer

                    e.Graphics.DrawString(grdSalesInvoice.Rows[k].Cells["SaleRate"].Value.ToString(), new Font("Arial", 6, FontStyle.Bold), Brushes.Black, new Point(130, CurrentY + offset));
                    e.Graphics.DrawString(grdSalesInvoice.Rows[k].Cells["Quantity"].Value.ToString(), new Font("Arial", 6, FontStyle.Bold), Brushes.Black, new Point(170, CurrentY + offset));
                    e.Graphics.DrawString(grdSalesInvoice.Rows[k].Cells["Discount"].Value.ToString(), new Font("Arial", 6, FontStyle.Bold), Brushes.Black, new Point(210, CurrentY + offset));
                    e.Graphics.DrawString(grdSalesInvoice.Rows[k].Cells["Amount"].Value.ToString(), new Font("Arial", 6, FontStyle.Bold), Brushes.Black, new Point(230, CurrentY + offset));

                    CurrentY = CurrentY + initialOffset;

                }

                Cureen_Height = CurrentY;
                e.Graphics.DrawString("__________________________________________________________________________________", new Font("Arial", 5, FontStyle.Bold), Brushes.Black, new Point(5, GetHeight(3)));

            e.Graphics.DrawString("Footer", new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(224, GetHeight(0)));

        }
        catch (Exception ex)
        {

        }
    }

Заранее благодарим за любую ценную помощь.

1 Ответ

0 голосов
/ 21 января 2020

Ну, потратив много времени, наконец-то я получил ответ на свой вопрос. Шаг 1: Go к устройству и принтерам. Setp2: выберите свой принтер и нажмите на управление. Шаг 3. Нажмите «Свойства принтера». Шаг 4: Нажмите кнопку «Настройки». Шаг 5: Нажмите кнопку «Дополнительно». Шаг 6: В поле «Размер бумаги» выберите размер длины 3276 мм.

Дополнительная информация: 3276 мм равно 11 размеру страницы А4. Если ваш текст по-прежнему превышает 11 страниц, вам необходимо определить собственный размер бумаги, длина которого даже превышает 3276.

enter image description here

...