自动调整打印字体大小

2021-12-18 10:16:03 admin

   在生鲜配送行业中,由于打印样式的特殊要求,品名长也不允许自动换行。同一张配送单上,品名长短差别很大,最少品名只有一个字,最长的品名,可达20多个字数。这给配送单打印排版和美观方面,带来比较大的困扰。

   能不能在打印时,自动调整字体大小,来适应不同的品名长度呢?

迅联食材配送软件里,可以参考以下样例,可以通过打印脚本判断,来处理这类的打印需求

自动调整字体大小后的打印效果如下:

自动打印字体大小


以上划绿色线条的项,就是自动调整后的效果。

通过打印脚本的设置,打印时能根据品名的字数,能自动调整合适的字体大小


设置方法如下:

  1. 按以下图示步骤,将第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


可调整不同字体大小和等级,应用不同的实际需要。