0
DataGridview의 데이터가있는 인쇄 페이지를 만드는 다음 코드가 있습니다.인쇄 된 페이지에 Graphics.Draw를 맞추는 방법은 무엇입니까?
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);
프린터는 위의 부분 (마지막이 졸라 매는 끈)를 인쇄하지 않습니다. 왜?
프린터 페이지 크기
는 비례 A4 (48mm X 68mm)
는 페이지의 끝에 도달인가? 페이지에 맞는지 확인할 논리가 없습니다. 너무 길면 여러 페이지에 걸쳐 인쇄해야합니다. –
어떻게 할 수 있습니까? –
이 질문보기 : http://stackoverflow.com/questions/8761633/how-to-find-the-actual-printable-area-printdocument –