如何用C1PrintDocument每页打印不同的效果

发布时间:2014/07/26 00:07 发布者:Alice

返回博客中心

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


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网