帮朋友做了一个标签打印的程序,已经完成了。做的过程中查了些资料。网上能查到的文章也就知道个大概,所以结合MSDN是必须的。以下是开发步骤。
一、涉及到的控件及类:
1、System.Windows.Forms.PrintDialog 实现打印前提示选择打印机的对话框。我们平时windows打印总会遇到的。
关键代码:
DialogResult result = this.printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
//开始打印。
}
(注:printDialog1 ,printDocument1 对应两个控件,直接在窗体进行拖拽,让开发环境自动生成。)
2、System.Drawing.Printing.PrintDocument 控制打印以及设置打印内容的控件。
关键代码:
this.printDocument1.DocumentName = "打印文档的名称"; //设置本次打印内容的名称
this.printDocument1.Print(); //开始执行打印。
相关事件:
PrintPage:打印开始后响应的事件,可以在这里初始化或者设置打印的内容。
EndPage:打印结束后响应的事件,可以在这里进行内存释放等操作。
以下是我的打印实现所有代码:
public partial class PrintForm : Form
{
//打印内容存放的变量,可根据具体需要自己设定
private string depart = null;
private string h_name = null;
private string pub_name = null;
private string h_price = null;
private string h_count = null;
//变量赋值,都是java写法,习惯了。
public void setDepart(string depart) {
this.depart = depart;
}
public void setH_name(string h_name)
{
this.h_name = h_name;
}
public void setPub_name(string pub_name)
{
this.pub_name = pub_name;
}
public void setH_price(string h_price)
{
this.h_price = h_price;
}
public void setH_count(string h_count)
{
this.h_count = h_count;
}
public PrintForm()
{
InitializeComponent();
//创建窗体对象是为打印对话空间赋值
this.printDialog1.AllowSomePages = true;
this.printDialog1.ShowHelp = true; //是否显示帮助
this.printDialog1.Document = this.printDocument1; //关联对话的打印控件
}
//外部赋值
public void setValue() {
this.textBox1.Text = this.depart;
this.textBox2.Text = this.h_name;
this.textBox3.Text = this.pub_name;
this.textBox4.Text = this.h_price;
this.textBox5.Text = this.h_count;
}
//打印按钮事件
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = this.printDialog1.ShowDialog(); //打印对话框弹出窗口,返回结果
if (result == DialogResult.OK) //对话窗口确认则执行下面代码
{
this.printDocument1.DocumentName = "标签打印---" + this.h_name; //设置本次打印内容名称
this.printDocument1.Print(); //开始打印。
}
}
//打印开始后响应的时间。实现打印内容。
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font titleFont = new Font("宋体", 12, FontStyle.Underline); //设置打印字体
//以下为将字符串发送到打印区域,其实this.textBox1.Text,打印字符串内容,titleFont为打印字体,Brushes.Black 打印采用的颜色,两个数字分别为Y,X左边。该坐标为打印机提供的打印范围左上角起的相对坐标。
e.Graphics.DrawString(this.textBox1.Text, titleFont, Brushes.Black, 40, 40);
// e.Graphics 各类打印内容的实现,如要实现图像打印可以用方法e.Graphics.DraoImage();其他详细的请参考MSDN。
}
}
以上即为打印的整个实现。