在实际应用中,票据是多种多样的,用针式打印机进行打印,要自定义纸张的格式;只有精确定义好纸张的高度,打印机在索引送纸时才不会出现误差。
每一种纸张格式都有唯一一个ID,在代码中设置要打印的水晶报表的纸张格式时,就是通过指定此ID来实现的。所以,接下来的关键问题是在代码中如果获得自定义的纸张ID,下面的代码(以C#为例)就实现些功能:
System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
int rawKind = 1; //记录标识自定义纸张的ID
//枚举出所有的打印纸尺寸
while (!(int i == doc.PrinterSettings.PaperSizes.Count))
{
if (doc.PrinterSettings.PaperSizes[i].PaperName == "自定义的纸张的名称")
{
rawKind = doc.PrinterSettings.PaperSizes[i].RawKind;
}
i++;
}
//指定纸张,下面代码的crystalReport是用所设计的报表定义的对象
汇总表 crystalReport = new 汇总表();
crystalReport.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)rawKind;
附 自定义纸张的设置方法:
点开始—→点“设置”中的“控制面板”—→选择“打印机和传真”—→点主菜单中的“文件” —→选择“服务器属性”。
在“服务器属性”屏幕,选中“创建新格式”,在“表格名”处给自定义的纸张起一名字(不要与系统自有的名字重复),再在下面格式描述(尺寸)中输入宽度与长度,最后点“保存格式”即可。
最后再到打印首选项中去修改:右击默认打印机出来“打印首选项”,选“高级”,在纸张规格边选中你设置的规格,最后按确定确定就可以啦。
附 指定水晶报表纸张规格方法:
水晶报表中的纸张规格是根据windows操作系统中打印机设置的纸张规格获得的。
设置完后,右键点击你设计的“水晶报表”,选择【设计】-》【打印机设置】,再选择已经定义了该打印“首选项”的打印机,设置纸张大小即可。
来源:https://www.cnblogs.com/oracleDBA/archive/2011/01/21/1940735.html