条码长度过长可以使用Code128或Ean128码制压缩条码长度
生成条码图形使用了第三方组件BCEncode.dll版本2.20
需要设置图形的分辨率为打印分辨率,方法:Bitmap.SetResolution(PRINTER_RESOLUTION_X, PRINTER_RESOLUTION_Y);。否则图形为默认分辨率,打印时会被放大。
需要使用如下方法对Graphics对象进行处理
private void SetGraphics(Graphics g)
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
}
否则绘制的图形会被做圆滑处理,添加很多黑白之外的颜色在图形上,且肉眼无法分辨。导致打印出来的图形有锯齿或虚线。
组件生成图形的色深为1-bit,而如果将其绘制到另一图形上会产生一个32-bit的图形(因为Bitmap对象默认是32位色深)。将该图形强制转换为1位色深后,文件大小基本可压缩10倍以上。
将打印机设置中切纸功能开启,且应设置打印的页边距,使每一个条码内容准确打印在条码标签上。
在打印机设置中设置打印的密度,以使打印出更清晰的条码便于扫描识别。
最后,不要打印长的横直线,容易使碳带被扯断。