int sub = 0;html
private void printText(string text, System.Drawing.Printing.PrintPageEventArgs e)ide
{字体
//取得Graphics实例this
Graphics g = e.Graphics;url
//得到相关点坐标、长度、宽度spa
int x = e.PageSettings.Margins.Left;orm
int y = e.PageSettings.Margins.Right;htm
int width = e.PageSettings.PaperSize.Width - e.PageSettings.Margins.Left - e.PageSettings.Margins.Right;对象
int height = e.PageSettings.PaperSize.Height - e.PageSettings.Margins.Top - e.PageSettings.Margins.Bottom;blog
int charnum;
int line;
//设置字体
Font font = new Font("宋体",15);
//打印string
g.MeasureString(text.Substring(sub), font, new SizeF(width, height - 10), new StringFormat(), out charnum, out line);
//设置截取位置
g.DrawString(text.Substring(sub), font, Brushes.Black, new RectangleF(x, y, width, height), new StringFormat());
sub += charnum;
if (sub < this.textBox1.Text.Length)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
sub = 0;
}
}
//打印预览
private void button1_Click(object sender, EventArgs e)
{
//注意指定其Document(获取或设置要预览的文档)属性
this.printPreviewDialog1.Document = this.printDocument1;
//ShowDialog方法:将窗体显示为模式对话框,并将当前活动窗口设置为它的全部者
this.printPreviewDialog1.ShowDialog();
}
//打印
private void button2_Click(object sender, EventArgs e)
{
//注意指定Document(获取或设置一个值)属性
this.printDialog1.Document = this.printDocument1;
//ShowDialog方法:用默认的全部者运行通用对话框
if (this.printDialog1.ShowDialog() == DialogResult.OK)
{ //DialogResult指定标识符以指定对话框的返回值
//触发PrintDocument的PrintPage事件
this.printDocument1.Print(); //Print方法:开始文档的打印进程
}
}
//printDocument1控件的PrintPage事件(双击printDocument1控件生成)
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
printText(textBox1.Text, e); //打印文本
e.Graphics.DrawImage(pictureBox1.Image, 20, 20); //打印图片
}
// printDocument1控件:定义一个向打印机发送输出的对象;
// printDialog1控件:显示一个对话框,容许用户选择打印机并选择其余打印选项;
// printPreviewDialog1控件:显示一个对话框,向用户显示关联文档打印时的样子;