• 问题解决——使用GP-3120TN打印条形码标签


    终于大致的尝试出了参数和编程手册里指令的使用。

    在这里,感谢佳博中一个叫做“Gprinter 陶玮”的工程师所提供的技术支持。非常感谢,如果没有你,在写这篇文章之前我可能换别的打印机了。

    同时鄙视下一个叫做“熊伯明翰♪”的工程师,技术支持不是你这样做的,答非所问、示例代码你不经验证就发给我、不理睬无视我的问题,要你何用。

    ----------------------------------------------------------------------------------------

    本文为原创文章,转载请保持文章的完整性,并且显要地注明出处

    本文链接:http://blog.csdn.net/wlsgzl/article/details/38271403

    禁止商业印刷出版,谢绝文章、书籍引用。

    ----------------------------------------------------------------------------------------

    在本文中所出现过的人名,如有侵犯您的相关权利,请私信通知我,或者在文章下面留言,我将采取相应的举措以确保您的权利。

    ================好久不见的双层分割线=================

    之前,使用微软的条形码控件生成条形码,然后打印到打印机,这是最初的设想。

    后来,在大概3×9的纸上尝试了一下,成功了。

    于是,模拟3.4×1.8的纸张尺寸,失败。

    我仔细想了下原因:在Win7+VS2010下,在MFC中使用msbcode9.ocx控件,我只能将其所在位置的DC画出的数据发送到打印机上,这跟用打印机打图片没有什么区别。由于将屏幕内容打印到打印机上,这里面需要一个比例缩放,使用double类型的变量来表示,这是没有什么疑问的。但是int×double再转换成int,这里面会有损失,这将导致一些细微的变化,垂直方向没什么,水平方向将影响条形码细条的宽度和距离——也许这就是我失败的原因。

    终于,我可以使用一开始我就想使用的方法了——外行领导害死人,还好工期够长——直接使用提供的指令编程。实际上,这比我用DC打印,在代码上要简单的多。

    ----------------------------------------------------------------------------------------

    先上图吧,经过不懈的努力,我找到了在3.4×1.8下最佳的格式和部分参数。

    (上图是尝试编码、DENSITY和SPEED)


    (上图是对候选DENSITY和SPEED的对比)

    最终的最佳参数是

    Code128

    DENSITY 3

    SPEED 4

    ================================================

    话说这个手册真是坑爹,中英文两本pdf根本对照不起来,连指令都是错的,还好可以不停的骚扰客服和技术部门。

    ================================================

    我写的一些小示例代码:

    1、打印一个条形码

    SIZE 35 mm,20 mm
    GAP 2 mm,0 mm
    OFFSET 0
    SET PEEL OFF
    SHIFT 0 
    CODEPAGE 437
    DIRECTION 1,0
    REFERENCE 8,8
    DENSITY 3
    SPEED 4
    CLS
    BARCODE 248,8,"128",240,1,90,1,1,"98765"
    PRINT 1,1
    EOP

    2、用计数器打印一系列数字

    SIZE 35 mm,20 mm
    GAP 2 mm,0 mm
    OFFSET 0
    SET PEEL OFF
    SHIFT 0
    DENSITY 3
    SPEED 4
    DIRECTION 1,0
    REFERENCE 8,8
    SET COUNTER @1 -1
    CLS
    @1="98765"
    TEXT 8,8,"2",0,1,1,@1
    PRINT 5,1
    EOP

    3、用计数器打印一系列条码(他们的技术支持告诉我,把128改成128M试一下,果然打出了标签。)

    SIZE 35 mm,20 mm
    GAP 2 mm,0 mm
    OFFSET 0
    SET PEEL OFF
    SHIFT 0
    DENSITY 3
    SPEED 4
    DIRECTION 1,0
    REFERENCE 8,8
    SET COUNTER @1 -1
    SET HEAD ON
    SET REPRINT OFF
    SET PRINTKEY OFF
    CLS
    @1="321098"
    BARCODE 248,8,"128M",240,1,90,1,1,@1
    PRINT 5,1
    EOP

    ===========================================

    以上仅是我这两天来通过实验的所得出的个人结论,不具有普遍性。

    如果您有好的方法,请不吝告知。

    ===========================================

    一些总结:

    SPEED、DENSITY、编码会对效果产生影响,看完上面的文字,便是众所周知的了。

    不同的数据也会对打印效果产生影响,例如“7”、“8”、“9”这三个数。这是真的,因为不同的数字字体不同,需要的距离不同。

    持续不停地打印也会对打印效果产生影响,例如,我使用我的第3段代码一次性打印了200个条形码,识别率不尽人意。

    ============================================

    PS:不知道当“持续不停地打印”时,这个SPEED跟速度是不是一个意思,注意,这不是在讨论英语。


     

  • 相关阅读:
    webpack高级概念code splitting 和 splitChunks (系列五)
    webpack高级概念Develoment 和 Production 不同环境的配置 (系列四)
    webpack高级概念Tree Shaking (树摇)(系列三)
    HarmonyOS三方件开发指南(16)-VideoCache 视频缓存
    鸿蒙开源第三方组件——uCrop_ohos图片裁剪组件
    Hi3516如何连接Wifi(三)
    【鸿蒙学院】鸿蒙IDE迎来重大更新,新特性足以让你尖叫
    《鸿蒙系统物联网模组——Neptune 三天全攻略》课件、代码
    预览器和编辑器双重发力,DevEco Studio 2.1 Beta 3强势来袭
    强大的鸿蒙开发环境 —— DevEco Studio 2.1 Beta3发布
  • 原文地址:https://www.cnblogs.com/wlsandwho/p/4202093.html
Copyright © 2020-2023  润新知