自动调整打印字体大小
在生鲜配送行业中,由于打印样式的特殊要求,品名长也不允许自动换行。同一张配送单上,品名长短差别很大,最少品名只有一个字,最长的品名,可达20多个字数。这给配送单打印排版和美观方面,带来比较大的困扰。
能不能在打印时,自动调整字体大小,来适应不同的品名长度呢?
在迅联食材配送软件里,可以参考以下样例,可以通过打印脚本判断,来处理这类的打印需求。
自动调整字体大小后的打印效果如下:
以上划绿色线条的项,就是自动调整后的效果。
通过打印脚本的设置,打印时能根据品名的字数,能自动调整合适的字体大小
设置方法如下:
按以下图示步骤,将第2点所贴出的脚本,粘贴到所圈出的图4的位置
2.脚本代码
float defaultFontsize = 9.75f;
float fontsize = defaultFontsize;
float fontsizeA = 8.25f;
float fontsizeB = 7.00f;
float fontsizeC = 6.00f;
float fontsizeD = 5.00f;
float fontsizeE = 4.00f;
int lenA=10;
int lenB=12;
int lenC=14;
int lenD=16;
int lenE=20;
string fontName="宋体";
var label = (XRTableCell)sender;
var len = label.Text.Length;
if (len > lenA && len <= lenB)
fontsize = fontsizeA;
else if (len > lenB && len <= lenC)
fontsize = fontsizeB;
else if (len > lenC && len <= lenD)
fontsize = fontsizeC;
else if (len > lenD && len <= lenE)
fontsize = fontsizeD;
else if(len > lenE)
fontsize = fontsizeE;
else fontsize = defaultFontsize;
label.Font= new System.Drawing.Font(fontName, fontsize, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
3.总结:
根据品名数量长度,划分了6个等级:
小于10字数的,
10-12
12-14
14-16
16-20
以及品名大于20个字的
分别对应6个等级的字体大小 :
default(默认)
A
B
C
D
可调整不同字体大小和等级,应用不同的实际需要。