使用C1PrintDocument打印的时候,顾客有不同的打印需求,比如最后一页显示“最后一页”,其他页显示“未完待续”。或是将某一个部分重复打印在每一页等。
本文就介绍如何在C1PrintDocument下在每页打印不同的效果。
数据表:
声明一个有5列的RenderTable,参考代码如下:
RenderTable rt = new RenderTable(); // Create Header int row = rt.Rows.Count; rt.Cells[row, 0].Text = "No."; rt.Cells[row, 1].Text = "Description"; rt.Cells[row, 2].Text = "Count"; rt.Cells[row, 3].Text = "Price"; rt.Cells[row, 4].Text = "Sum";
将表头打印到每一页:将表头的RowGroup的PageHeader属性设置为True,就可以将当前指定Group重复打印在每一页。
rt.RowGroups[row, 1].PageHeader = true;
公式:
PrintDocument.PageLayouts里面提供了一些接口,可以定制页面,让每一页都显示不同的样式。
比如非最后的页面显示:“未完待续”,在最后的页面则显示”最后一页”。
并且把这个文字显示在页脚处,首先需要定义一个RenderText,在RenderText里面使用公式判断是否最后一页。
最后把这个RenderText放到页脚处。
参考代码如下:
RenderText text = new RenderText("[PageNo==PageCount ? \"最后一页\" : \"未完待续\"]"); _printDocument.PageLayout.PageFooter = text;
这样子得到的页面效果如下。
第一页的样式:
最后一页的样式:
第一页和最后一页的Header 和Footer是不一样的。
本文Demo如下:Print.zip (3.25 mb)