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

使用C1PrintDocument打印的时候,顾客有不同的打印需求,比如最后一页显示“最后一页”,其他页显示“未完待续”。或是将某一个部分重复打印在每一页等。本文就介绍如何在C1PrintDocument下在每页打印不同的效果。

发布于 2014/07/26 00:00

ComponentOne Enterprise

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

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态