我正在使用WinForms。在我的表格中,我有一个图片框和一个按钮,可以在图片框中打印图片。
在我的代码中,当您单击打印按钮时,程序会在图像周围显示带有矩形框的打印预览。我画了这个矩形框,因为我有特定种类的纸张,我打印到。这些文件在边界上有图片。用户无法打印纸张上的图片。我只是想通知用户,如果您在打印预览中传递这些矩形边线,您将在纸张上的图片上打印。
目标:当我点击打印按钮时,我想看到带有矩形边框的打印预览纸,但我不希望打印矩形边框。我只想要打印图像。
private void button1_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
var bmp = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height);
this.pictureBox1.DrawToBitmap(bmp, this.pictureBox1.ClientRectangle);
e.Graphics.DrawRectangle(Pens.Salmon, 25, 25, 500, 1000);
e.Graphics.DrawImage(bmp, 25, 25, 500, 500); //Gets the input from the textboxes
}
答案 0 :(得分:4)
您可以使用PrintController.IsPreview属性:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
var bmp = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height);
this.pictureBox1.DrawToBitmap(bmp, this.pictureBox1.ClientRectangle);
if (this.printDocument1.PrintController.IsPreview) {
e.Graphics.DrawRectangle(Pens.Salmon, 25, 25, 500, 1000);
}
e.Graphics.DrawImage(bmp, 25, 25, 500, 500); //Gets the input from the textboxes
}