如何实现 winform打印(求winform打印高手支招)

如何实现 winform打印(求winform打印高手支招),第1张

*** 作步骤:

1、新建winform项目及创建窗体

2、拖取 打印 相关控件

PageSetupDialog 、 PrintDialog 、 PrintDocument 、PrintPreviewDialog

3、设置上述控件的Document属性为相应的PrintDocument

4、设置按钮等控件 及 添加相应按钮事件

5、示意代码如下

代码

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent()

this.printDocument1.OriginAtMargins = true//启用页边距

this.pageSetupDialog1.EnableMetric = true//以毫米为单位

}

//打印设置

private void btnSetPrint_Click(object sender, EventArgs e)

{

this.pageSetupDialog1.ShowDialog()

}

//打印预览

private void btnPrePrint_Click(object sender, EventArgs e)

{

this.printPreviewDialog1.ShowDialog()

}

//打印

private void btnPrint_Click(object sender, EventArgs e)

{

if (this.printDialog1.ShowDialog() == DialogResult.OK)

{

this.printDocument1.Print()

}

}

//打印内容的设置

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

{

////打印内容 为 整个Form

//Image myFormImage

//myFormImage = new Bitmap(this.Width, this.Height)

//Graphics g = Graphics.FromImage(myFormImage)

//g.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size)

//e.Graphics.DrawImage(myFormImage, 0, 0)

////打印内容 为 局部的 this.groupBox1

//Bitmap _NewBitmap = new Bitmap(groupBox1.Width, groupBox1.Height)

//groupBox1.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height))

//e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height)

//打印内容 为 自定义文本内容

Font font = new Font("宋体", 12)

Brush bru = Brushes.Blue

for (int i = 1i <= 5i++)

{

e.Graphics.DrawString("Hello world ", font, bru, i*20, i*20)

}

}

}

System.Windows.Forms.PrintDialog 或者System.Drawing.Printing.PrintDocument。

创建一个PrintDialog的实例。如下:

System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog ()

创建一个PrintDocument的实例.如下:

System.Drawing.Printing.PrintDocument docToPrint =

new System.Drawing.Printing.PrintDocument()

设置打印机开始打印的事件处理函数.函数原形如下:

void docToPrint_PrintPage(object sender,

System.Drawing.Printing.PrintPageEventArgs e)

将事件处理函数添加到PrintDocument的PrintPage事件中。

docToPrint.PrintPage+=new PrintPageEventHandler(docToPrint_PrintPage)

设置PrintDocument的相关属性,如:

PrintDialog1.AllowSomePages = truePrintDialog1.ShowHelp = true

把PrintDialog的Document属性设为上面配置好的PrintDocument的实例:

PrintDialog1.Document = docToPrint

调用PrintDialog的ShowDialog函数显示打印对话框:

DialogResult result = PrintDialog1.ShowDialog()

根据用户的选择,开始打印:

if (result==DialogResult.OK)

{

docToPrint.Print()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12092589.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存