Я пытаюсь распечатать выбранную страницу в элементе управления winforms tab, но независимо от того, что я делаю, я получаю пустую страницу.
У меня есть этот код для захвата и печати скриншота формы Windows с помощью элемента управления PrintDocument; Я хотел бы сделать что-то похожее на это.
private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Bitmap newImage = new Bitmap(memoryImage, new Size(Convert.ToInt32(memoryImage.Width / 1.25), Convert.ToInt32(memoryImage.Height / 1.25)));
newImage.RotateFlip(RotateFlipType.Rotate90FlipNone);
e.Graphics.DrawImage(newImage, 0, 0);
}
private void printBtn_Click(object sender, EventArgs e)
{
PrintDialog myPrintDialog = new PrintDialog();
if (myPrintDialog.ShowDialog() == DialogResult.OK)
{
CaptureScreen();
printDocument1.Print();
}
}
Я попытался изменить объект, на который ссылается функция CaptureScreen, на вкладку, в отличие от общей формы окон; Я попытался выяснить, как использовать функцию PrintVisual объекта PrintDialog, но это, похоже, работает только в проектах WPF, а это не так. Кто-нибудь знает, как заставить это работать?