Я разрабатываю 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)
{
}
}
Заранее благодарим за любую ценную помощь.