Как напечатать табличку с панелью в виде окна

У меня есть форма окна, которая содержит таблицу, две надписи над ней и много других компонентов под ней. Используя PrintDocument, я хотел бы напечатать таблицу с ее заголовком, и только это без отображения других компонентов. Это моя форма

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

Bitmap printImage;
private void CaptureScreen()
{ 
    printImage = new Bitmap(tableLayoutPanel1.Width, tableLayoutPanel1.Height);
    tableLayoutPanel1.DrawToBitmap(printImage, new Rectangle(0, 0, printImage.Width, printImage.Height));
}

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.DrawImage(printImage, 0, 0);
}

Как мне совместить ярлык?

1 ответ

В своем коде печати используйте Graphics.MeasureString, чтобы получить размер текста метки (или используйте высоту метки), используйте его для смещения растрового изображения (вместо 0, 0), а затем используйте объект Graphics для рисования строки, используя свойства Text, Forecolor и Font метки. Если вы хотите использовать метку backcolor, сделайте Graphics.FillRectangle до рисования строки.

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

Другие вопросы по тегам