有谁做过打印换页,请教教我!!!!!!!!!HELP ME
以下是我写的打印换页代码,大家看一下,是不是有问题
/// <summary>
/// 行数计算
/// </summary>
/// <param name= "text "> </param>
/// <returns> </returns>
private int GetLines(string text)
{
int linebytes=41;// 行的字节数(2个字节以个汉字)
int lines=1;
int pos1=0;//行里第1个索引位置
int pos2=0;//行里第2个索引位置
text=text.Replace( " ", " ").Replace( "  ", " ");
pos2=text.IndexOf( " <br> ");//返回第2行到最后的字符数
mk=lines.ToString();
while (pos2> =0)//判断行里到底有几个 <br>
{
lines++;//有以个就要多+1行
if (pos2-pos1> linebytes) lines+=(pos2-pos1)/linebytes;//第2个 <br> 的索引位置-第1个位置大于字节数
mk+= ", "+lines.ToString()+ "( "+pos1.ToString()+ ", "+pos2.ToString()+ ") ";
pos1=pos2;//把第2个索引位置赋给第1个索引位置
pos2=text.IndexOf( " <br> ",pos1+1);//第2个索引位置去获得下一个 <br> 的索引位置
}
pos2=text.Length;
if (pos2-pos1> linebytes) lines+=(pos2-pos1)/linebytes;
lines++;
mk+= ", "+lines.ToString()+ "( "+pos1.ToString()+ ", "+pos2.ToString()+ ") ";
return lines;
}
/// <summary>
/// 打印换页
/// </summary>
/// <param name= "tr "> </param>
/// <param name= "pos "> </param>
/// <param name= "text "> </param>
/// <returns> </returns>
private int PageBreak(System.Web.UI.WebControls.TableRow tr,int pos,string text)
{
int pagelines=71;//页面总行数
int i=GetLines(text);//i表示1行里的数据是多少行
if (pos+i> =pagelines)//当前打印位置的行数+这次打印行里的数据行数是不是大于等于页面总行数
{
tr.Style.Add( "PAGE-BREAK-AFTER ", "always ");
return i;//如果大于的话,把当前要打印的行里的数据换到第2页去打印
}
return pos+i;//如果不是的话,当前打印位置的行数+这次打印行里的数据行数
}
------解决方案--------------------帮顶
------解决方案--------------------分页了呀,边框分到下一页了。边框只有一个呀。
------解决方案--------------------up
------解决方案--------------------帮顶