Как разместить Graphics.Draw на печатной странице? - PullRequest
0 голосов
/ 27 января 2012

У меня следующий код, который создает страницу для печати с данными из datagridview.

Font print10B = new Font("Lucida Console", 10, FontStyle.Bold);
Font print8B = new Font("Arial", 9, FontStyle.Regular);
Font print6B = new Font("Arial", 8, FontStyle.Regular);

e.Graphics.DrawString("   NOTA DE PLATA",print10B,Brushes.Black,10,10);
e.Graphics.DrawString("-----------------------------------------", new Font(dataGridView1.Font.FontFamily, 8, FontStyle.Regular), Brushes.Black, 10, 70);
e.Graphics.DrawString("Produs   | Cant | Pret | Total ", print8B, Brushes.Black, 10, 100);
int height = 0;
int x = 10;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
  e.Graphics.DrawString(dataGridView1.Rows[i].Cells["DenumireProdus"].Value.ToString(), print6B, Brushes.Black, x, 120+height);
  e.Graphics.DrawString(dataGridView1.Rows[i].Cells["produs_cantitate"].Value.ToString(), print6B, Brushes.Black, x+70, 120 + height);
  e.Graphics.DrawString(dataGridView1.Rows[i].Cells["produs_pret"].Value.ToString() , print6B, Brushes.Black, x+105, 120 + height);
  e.Graphics.DrawString(dataGridView1.Rows[i].Cells["produsvaloare"].Value.ToString(), print6B, Brushes.Black, x + 135, 120 + height);
  height += 20;
}
e.Graphics.DrawString("-----------------------------------------", new Font(dataGridView1.Font.FontFamily, 8, FontStyle.Regular), Brushes.Black, 10, dataGridView1.Height);
e.Graphics.DrawString("Total:  " + textBox1.Text+" RON", print10B, Brushes.Black,40, dataGridView1.Height + 10);

До здесь:

e.Graphics.DrawString("-----------------------------------------", new Font(dataGridView1.Font.FontFamily, 8, FontStyle.Regular), Brushes.Black, 10, dataGridView1.Height);
e.Graphics.DrawString("Total:  " + textBox1.Text+" RON", print10B, Brushes.Black,40, dataGridView1.Height + 10);

Принтер не печатает вышеуказанную часть (последние 2 кулисы). Почему?

Размер страницы принтера - Пропорциональный A4 (48 мм x 68 мм)

1 Ответ

0 голосов
/ 27 января 2012

Это не прямой ответ на ваш вопрос, но это может сэкономить вам много времени.

На Codeproject.com есть код и компонент, который позволяет печатать / предварительно просматривать DataGrid. Мы используем его в нескольких приложениях, и это спасает жизнь.

http://www.codeproject.com/Articles/36488/DataGridView-Print-Print-Preview-Solution-Part-I

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...