使用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)