Bar Code (条形码) 打印出现乱码的问题解决方案

 在报表中打印条形码时,有时会发现打出乱码,即使是标准系统!

在设置打印条形码时,对应的StringEdit有两个属性需要注意:Font和DataMethod, 以BC开头的字体是条形码,如果将Font设置为:“BC C128 HD Wide” 则需要将DataMethod设置为对应的“BarcodeEAN128”。

 

学习如何使用BarCode 可以参考Report:AssertBarcode

在确定了我们要使用的BarCode字体后,可以使用如下的代码直接得到BarCode:

 

    BarcodeCode39 barcode;
    ;
    barcode = Barcode::construct(BarcodeType::Code39);
    //is it needed to validate this barcode before print?
    barcode.clear();
    barcode.string(true,strltrim(strrtrim(num2str(this.OprNum,10,0,1,0))));
    return barcode.barcodeStr();

 

系统中BarCode 的是所有条形码的父类,在它之下有很多不同的子类,我们只要声明对应的类,并使用对于的ENUM值construct构造返回对应的实例,然后传递我们要转化为条形码的字符串给该实例,读取条形码就可以了。

 

有时候会出现乱码,检查代码和属性时发现一切都是正确的。产生这一问题的原因有几种可能:

1. 需要的字体类型在客户端或服务器端不存在

2.客户端操作系统与服务器端操作系统不同,所以导致字符集会不同

解决方案:

首先保证客户端和服务器端都有这种字体,然后更改调用该报表的MenuItem的RunOn属性为“Called from”(更改操作系统显然是不现实的!)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值