本文共 6309 字,大约阅读时间需要 21 分钟。
表单打印的多个部分都可以进行自定义,大多数的自定义选项存在于PrintInfo对象中。大多数打印选项是在PrintInfo对象上进行设置,并在表单级别上应用。当你执行打印操作时,你将一个特定的表单发送给使用这些设置的打印机。如果你想为不同的表单使用不同的打印设置,那么你可能需要重置PrintInfo对象,然后在表单打印的间隔内做必要的修改。
深入理解打印选项
你可以通过设置PrintInfo对象的 属性,并将表单的PrintInfo属性值设置为该对象,来自定义打印设置。PrintInfo对象提供了以下属性用来自定义打印:
属性 | 描述 |
AbortMessage | 获取或设置退出对话框显示的信息。 |
BestFitCols | 获取或设置列宽是否为满足打印最长字符串的宽度而调整。 |
BestFitRows | 获取或设置行高是否为满足打印最高字符串的高度而调整。 |
Centering | 获取或设置打印输出是否居中。 |
Colors | 获取或设置可在自定义页眉或页脚文本中使用的颜色列表。 |
ColStart和 ColEnd | 用来打印表单的一部分。 |
FirstPageNumber | 获取或设置打印在首页上的页码。 |
Footer | 为打印页面提供页脚。 |
Header | 为打印的页面提供页眉。 |
Images | 获取或设置可在自定义页眉或页脚中使用的图片列表。 |
JobName | 获取或设置打印作业的名称。 |
Margin | 获取或设置打印的页面空白。 |
Opacity | 获取或设置打印表单时所使用的不透明度; 它可以用来首先打印一个水印,然后再打印表单的内容。 |
Orientation | 获取或设置打印时的页面方向。 |
PageStart和 PageEnd | 用来打印一个页面区域。 |
PageOrder | 获取或设置页面打印的顺序。 |
PaperSize | 获取或设置所使用的纸张大小。 |
PaperSource | 获取或设置所使用的纸张来源。 |
Preview | 用来提供打印预览。 |
Printer | 获取或设置用来打印的打印机名称。 |
PrintNotes | 获取或设置是否打印单元格注释。 |
PrintShapes | 获取或设置是否打印浮动对象。 |
PrintType | 获取或设置需要打印的内容。 |
RepeatColStart和 RepeatColEnd | 获取或设置是否在每一个页面上打印相同的列集。 |
RepeatRowStart 和 RepeatRowEnd | 获取或设置是否在每一个页面上打印相同的行集。 |
RowStart和 RowEnd | 用来打印表单的一部分。 |
ShowBorder | 获取或设置是否在表单的四周打印边界。 |
ShowColor | 获取或设置是否打印在屏幕上出现的颜色。 |
ShowColumnHeader 和 ShowRowHeader | 获取或设置是否打印列标题和行标题。 |
ShowGrid | 获取或设置是否打印表单的网格线。 |
ShowPrintDialog | 获取或设置打印前是否显示打印对话框。 |
ShowShadows | 获取或设置是否打印标题阴影。 |
SmartPrintPagesTall | 获取或设置打印的页高。 |
SmartPrintPagesWide | 获取或设置打印的页宽。 |
SmartPrintRules | 用来设置打印优化的规则。 |
UseMax | 获取或设置是否只打印包含数据的行。 |
UseSmartPrint | 用来开启打印优化的规则。 |
ZoomFactor | 获取或设置打印页面时使用的缩放因子。 |
示例代码创建了一个PrintInfo对象,并设置属性指定不打印网格线或行标题,并且只打印包含数据的单元格。
自定义打印作业设置
如果你没有指定其他打印机的话,表单会使用你的Windows系统环境中当前的默认打印机进行打印。你可以在任意支持Windows的打印机上打印表单。
你可以自定义的打印作业设置项包括打印机、纸张来源、以及纸张大小。相对应的,可以设置PrintInfo对象中的Printer,PaperSource,或PaperSize属性。
下面的示例代码从一个复选框中选择了纸张来源,并在打印所有表单前设置了纸张的大小。
自定义打印页眉或页脚
你可以在打印页面上显示页眉和页脚。使用PrintInfo类的 Header属性和 Footer属性,可能包含特殊的控制指令,你可以指定文本和变量,如页数,也可以指定字体的设置。与字体相关的指令以"f"开头。
下面的表中列出了可插入到页眉和页脚中的控制指令。
控制字符 | 完整的命令 | 打印页面的页眉或页脚的行为 |
/ | / | 插入正斜杠字符(/) |
/c | /c | 调整项目居中 |
/cl | /cl"n" | 设置文本的字体颜色,使用以0为基准的颜色索引,n,在引号中(n可以是0或更大); 请参考Colors属性。 |
/dl | /dl | 使用长格式,插入日期 |
/ds | /ds | 使用短格式,插入日期 |
/f | /f"n" | 重新调用先前保存的字体设置(查看表中的/fs),使用以0为基准的索引,n,在引号中(n可以是0或更大)。 |
/fb | /fb0 | 关闭加粗字体类型 |
/fb1 | 打开加粗字体类型 | |
/fi | /fi0 | 关闭斜体字体类型 |
/fi1 | 打开斜体字体类型 | |
/fk | /fk0 | 关闭删除线 |
/fk1 | 打开删除线 | |
/fn | /fn"name" | 使用引号中字体的名称,设置字体的名称。 |
/fs | /fs"n" | 保存字体设置以便重复使用,使用以0为基准的字体设置索引,n,在引号中(查看表中的/f) |
/fu | /fu0 | 关闭下划线 |
/fu1 | 打开下划线 | |
/fz | /fz"n" | 设置字体的大小 |
/g | /g"n" | 插入一张图形(图片),以0为基准的图片索引,n,在引号中(n可以为0或更大) 请参考Images属性。 |
/l | /l | 左对齐该项目(这是字母l或L,与Left等价) |
/n | /n | 插入一个新行 |
/p | /p | 插入页码 |
/pc | /pc | 插入页数(打印作业中的总页面数) |
/r | /r | 右对齐该项目 |
/tl | /tl | 使用长格式插入时间 |
/ts | /ts | 使用短格式插入时间 |
如果你使用了多个控制字符,不要在字符之间留空格。字符可以为小写或大写格式; 为了简单起见,显示在这里的所有命令和示例都使用小写格式。
打印表单(运行PrintSheet 方法)前定义页眉和页脚(设置 Header 和 Footer 属性)。
如果颜色已经在Colors属性中进行了预定义,那么你可以从颜色列表中为文本指定一个颜色。
如果图片已经在Images属性中进行了预定义,你可以指定一个图片。
你可以添加文本包括页数和总的打印页数。
你可以保存页眉或页脚中的字体设置,以便重复使用。
这个是下面代码运行的结果。
下面的示例代码打印带有指定页眉和页脚文本的表单:
在打印页面上循环打印行或列
你可以指定出现在每一个打印页顶部的行或左边的列。使用PrintInfo对象的RepeatRowStart,RepeatRowEnd,RepeatColStart,和RepeatColEnd属性。
下面的示例代码设置了循环选项,并使用了预览对话框。
添加分页符
你可以在指定的行或列前添加强制分页符。分页符不会在屏幕上显示,但是在打印表单时会强制分页。列的分页符位于指定列的左边。行的分页符位于指定行的上方。要添加或设置分页符,使用SetRowPageBreak 和SetColumnPageBreak方法。
你也可以检索到表单中位于分页符后的下一行或列。要查看已经设置的分页符,使用GetRowPageBreaks方法返回行分页符的数量,使用GetColumnPageBreaks方法返回列分页符的数量。
你可以使用GetPrintPageCount方法 计算表单的打印页数。
下面的示例代码设置了行分页符,并为行分页符返回了总行数。
为打印页面添加水印
在打印表单时,你可以打印一张背景图片或水印。打印时,触发PrintBackground事件,然后在该事件中指定背景图片,并使用PrintInfo.Opacity属性设置不透明度; 打印表单时,如果不透明度最高(透明度最低),则没有水印;而如果不透明度低(透明度高)时,则会显示水印。
下面的代码示例展示了如何打印水印。
本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/645955,如需转载请自行联系原作者