还是不能正常打印:
textControl1.Print(printDoc); 打印两次后发生异常
先打印当前处理过的页面 ,恢复成原来正常数据后继续打印当前页面后面的页面!
如: 文件共3页 处理第2页 完成后 打印第2页 恢复文档后 打印第3页 (结果打了1 到 3页)
麻烦给看看,谢谢!
string olddata = "";
int curpage = 2
//保存当前文档内容到 变量 olddata,
textControl1.Save(out olddata, TXTextControl.StringStreamType.RichTextFormat);
//处理文档内容
................................
.........................................................
//打印当前面(如: 文档共3页面 此处当前页面为(curpage=2) 第2页)
System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
printDoc.PrinterSettings.PrintRange = System.Drawing.Printing.PrintRange.SomePages;
printDoc.PrinterSettings.FromPage = curpage;
printDoc.PrinterSettings.ToPage = curpage;
textControl1.Print(printDoc);
//从变量 olddata 恢复 textControl1 数据为原始数据
textControl1.Load(olddata, TXTextControl.StringStreamType.RichTextFormat);
textControl1.Refresh();
//打印剩余页面
if (curpage == textControl1.Pages)
{
return;
}
else
{
//打印剩余页面 (如: 文档共3页面 此处当前页面为(curpage=2) 第2页 剩余页面 为第3页)
System.Drawing.Printing.PrintDocument printDoclast = new System.Drawing.Printing.PrintDocument();
printDoc.PrinterSettings.FromPage = curpage + 1 ;
printDoc.PrinterSettings.ToPage = textControl1.Pages;
//下面这句很是想不明白,为什么传入值为 FromPage = 3 ToPage = 3 但实际却是从打印第1页 到 第3页 ?
textControl1.Print(printDoclast);
} |