Java实现调用Bartender控制条码打印机

Posted wtzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现调用Bartender控制条码打印机相关的知识,希望对你有一定的参考价值。

官方提供的主要是C#支持。

基于java调用bartender二次开发官方给了一份1998年的J#代码,,,完全用不了,,,百度谷歌搜索万能的网友的答案,发现也没有可参考的。。

最后想到了之前用到了一次利用JNA调用C++dll文件。那是不是可以通过JNA调用C++,C++调用C#。。三种语言一起调试,过程中各种自闭。

1.首先创建C#类库项目:

封装了bartender需要用到的Api。(此处大坑就是类对象由于第一次没有写成单例,C++中进行托管的时候每次重新创建对象,导致调试的时候每次类里的对象都重置。。)

最后就是生成Dll文件供C++使用。

技术图片

 

2.创建C++Win32项目

通过C++封装对外访问的接口,此处设置了项目公共语言运行时的支持。最后生成dll给javaJNA映射。

技术图片

3.创建java接口类

创建java接口以及继承JNA里的Library,,,然后就把C++里的方法映射到此接口大功告成。。

 

技术图片

4.各种坑

C++对应C#中的类型转换,,

java对应C++中的类型转换,,,

中文传递,,除了代码中设置jna的编码,,,bartender中使用的模板也要设置编码,,它的默认如下(调试这里的时候一直以为是代码中的原因醉了)。。

技术图片

 

 需要更改为:

技术图片

技术图片

最后就可以愉快的打印了。。。。

 

5.暂时封装的API接口如下

  • 初始化打印机引擎
  • 打开模板文件
  • 获取此模板具名数据源个数
  • 获取某个具名数据源的名称
  • 获取某个具名数据源的值
  • 修改某个具名数据源的值
  • 是否支持打印拷贝
  • 设置打印拷贝数量
  • 是否支持序列化拷贝
  • 设置序列化拷贝数量
  • 设置指定位置打印(比如一行三列,1代表最左边,以此类推)

以上基本上能够满足开发需求

 

使用方法欢迎进群下载交流(927465926)

 

以上是关于Java实现调用Bartender控制条码打印机的主要内容,如果未能解决你的问题,请参考以下文章

Delphi调用BarTender8.01打印条码标签

[C#]调用Bartender服务并打印bartender标签

bartender条码打印软件 一打开就无响应

Bartender 条码打印软件二次开发

java怎样调用打印机实现bartender后台打印

bartender(条码打印软件) 9.4,我还装seagull license server了装后还是为啥不能打印?