码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-08-09 16:00:11      阅读:464      评论:0      收藏:0      [点我收藏+]

标签:font   dll   开发   技术   16px   api接口   更改   打印机   位置   

官方提供的主要是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控制条码打印机

标签:font   dll   开发   技术   16px   api接口   更改   打印机   位置   

原文地址:https://www.cnblogs.com/wtzl/p/11326852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!