Java项目中使用Bartender打印

第零步:

下载Jacobhttps://download.csdn.net/download/Bof_jangle/88612066

第一步:通过mvn命令将包中的jar包添加到maven仓库,mvn命令如下 

mvn install:install-file -DgroupId=com.jacob -DartifactId=jacob -Dversion=1.19 -Dpackaging=jar -Dfile=jacob.jar

第二步:复制jacob-1.19-x64.dll和jacob-1.19-x86.dll文件放到C:\WINDOWS\System32目录下

第三步:

<dependency>
    <groupId>com.jacob</groupId>
    <artifactId>jacob</artifactId>
    <version>1.19</version>
</dependency>

第四步(支持JDK8,不支持JDK11):

package socket;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;

public class BartenderUtils {

	public static void printTag(String serNo, String f5, String f1) {
		// 要运行COM组件,需要先添加jacob包
		ComThread.InitSTA();

		// 加载Bartender进程,需要先安装Bartender。
		ActiveXComponent btApp = new ActiveXComponent("BarTender.Application");

		// 加载Bartender模板控件
		Dispatch btFormats = btApp.getProperty("Formats").toDispatch();

		// 调用模板,bo.getTemplatePath()方法(获取模版路径)你自己定义
		Dispatch btFormat = Dispatch.call(btFormats, "Open", "D:/plc/plc01.btw", false, "").toDispatch();

		// 传递参数,参数名称要和Bartender中设置的名称一样,不然会失败,bo是打印对象
		// 首轮最大
		Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd5", f1);
		// 末轮最大
		Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd4", f5);
		// 时间
		Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd3", serNo.substring(serNo.length() - 14));
		// 序号
		Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd2", serNo.substring(0, serNo.length() - 14));
		// 二维码
		Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd1", serNo);

		// 设置打印份数,默认是1份可以不设置
		Dispatch printSetup = Dispatch.get(btFormat, "PrintSetup").toDispatch();
		Dispatch.put(printSetup, "IdenticalCopiesOfLabel", 1);

		// 打印,Bartender会自动选择模板中设置的打印机打印
		Dispatch.call(btFormat, "PrintOut", false, false);

		// 打印完成,关闭模板控件
		Dispatch.call(btFormat, "Close", 0);

		// 关闭Bartender进程
		Dispatch.call(btApp, "Quit", 0);
	}

}

第五步:具名数据源

创建好标签具名数据源之后,用鼠标拖动具名数据源,移动到对应的标签内容上即可完成映射。

Dispatch.call(btFormat, "SetNamedSubStringValue", "dtd5", f1);

代码中的dtd5就是具名数据源的名称,f1就是要传递的变值。这样一一映射就好了(二维码也一样,直接传值就OK了)。

参考文献:

Java项目使用Bartender标签打印(通过jacob)_java调用bartender打印-CSDN博客

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值