C#打印分页
2012-08-24 15:10
423 查看
对于HasMorePages,从字面上理解就是多页打印,也就是实现。在很多时候,由于参数设定错误,很容易出现new PointF(10.0, 30.0)部分报错的现象。这里需要谨慎对待。
HasMorePages的作用很容易产生误解,但也很好理解:当PrintPage函数执行完后,如果HasMorePages==true,则重新执行一遍PrintPage这个函数。只要明白了这一点,打印分页就很简单了。
在打印时,可以把打印位置保存下来,以便于第二次执行PrintPage时知道从哪开始打印。例如,下面这段程序用来打印一个DataTable中有所有数据,每页打印一条:
C#打印分页代码
class Print
{
public partial class NoticePrinter : Form
{
PrintDialog _printDialog;
PrintDocument _printDocument;
DataTable _table;
int _curRow;
//在执行这个函数之前,先要把_curRow初始化为0;
//当HasMorePages==true时,这个函数会重复执行,直到HasMorePages==fasle为止;
void _printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
DataRow row;
string name;
string sex;
row = _table.Rows[_curRow];
name = row["xm"].ToString().Trim();
sex = row["xb"].ToString().Trim();
Font font = new Font("宋休", 12);
e.Graphics.DrawString(name, font, Brushes.Black, new PointF(10.0, 10.0));
e.Graphics.DrawString(sex, font, Brushes.Black, new PointF(10.0, 30.0));
_curRow++;
if (_curPage == _table.Rows.Count)
{
e.HasMorePages = false;
}
else
{
e.HasMorePages = true;
}
}
}
}
HasMorePages的作用很容易产生误解,但也很好理解:当PrintPage函数执行完后,如果HasMorePages==true,则重新执行一遍PrintPage这个函数。只要明白了这一点,打印分页就很简单了。
在打印时,可以把打印位置保存下来,以便于第二次执行PrintPage时知道从哪开始打印。例如,下面这段程序用来打印一个DataTable中有所有数据,每页打印一条:
C#打印分页代码
class Print
{
public partial class NoticePrinter : Form
{
PrintDialog _printDialog;
PrintDocument _printDocument;
DataTable _table;
int _curRow;
//在执行这个函数之前,先要把_curRow初始化为0;
//当HasMorePages==true时,这个函数会重复执行,直到HasMorePages==fasle为止;
void _printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
DataRow row;
string name;
string sex;
row = _table.Rows[_curRow];
name = row["xm"].ToString().Trim();
sex = row["xb"].ToString().Trim();
Font font = new Font("宋休", 12);
e.Graphics.DrawString(name, font, Brushes.Black, new PointF(10.0, 10.0));
e.Graphics.DrawString(sex, font, Brushes.Black, new PointF(10.0, 30.0));
_curRow++;
if (_curPage == _table.Rows.Count)
{
e.HasMorePages = false;
}
else
{
e.HasMorePages = true;
}
}
}
}
相关文章推荐
- C#中加入打印分页
- C#中PrintDocument打印功能的实现。分页打印内容控制与排版
- arcengine,C#实现分页打印预览
- C#打印分页中的HasMorePages用法
- c# 分页打印多行文本
- C# 打印分页(HasMorePages用法)
- c#的listview实现分页效果
- jQuery打印指定区域Html页面并自动分页
- Web分页打印 细线表格+分页打印之终极攻略(转载)
- C# 小票打印机 直接打印 无需驱动
- c#分页读取GB文本文件
- C#中常用的分页存储过程总绪
- c#打印控制器
- 数字分页导航条 (asp.net C#)
- C#DataGridView实现分页显示
- C#Winform中打印预览时设置横向打印
- c#asp.net表格Html数据模板转换Pdf文件web打印pdf报表dll
- C# 设置Excel打印选项及打印excel文档
- C#并口指令打印的实现总结
- (C#)Excel中如何实现以分页预览的方式显示,凍結窗口