1、下载jacob(点击进入地址)
2、将下载好的jacob.zip解压,添加maven仓库
切记DLL文件不要删除。有关dll文件代码页面有详细解释。
mvn install:install-file -Dfile=C:/Users/sprt_java/Downloads/jacob-1.21/jacob-1.21/jacob.jar -DgroupId=com.jacob -DartifactId=jacob -Dversion=1.21 -Dpackaging=jar
C:/Users/sprt_java/Downloads/jacob-1.21/jacob-1.21/jacob.jar 改为自己的文件路径
3、将添加好的jacob添加到项目工程中
<dependency>
<groupId>com.jacob</groupId>
<artifactId>jacob</artifactId>
<version>1.21</version>
</dependency>
4、准备标签模板
5、代码编写
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import com.jacob.com.LibraryLoader;
public class BarTenderPrint {
public static void main(String[] args) {
// 设置 DLL 文件路径(可以设置项目文件路径)
//自己开发时可以把dll放在C:\WINDOWS\System32路径下
//但是项目打包部署服务器也要同样放在路径下
//所以更推荐放在项目路径下,这样可以直接打包项目使用。
// 根据jdk位数看看用什么位数的x64.dll还是x86
String jacobDllVersionToUse = "jacob-1.21-x64.dll"; // or jacob-1.21-x86.dll for 32-bit JVM
String jacobDllFullPath = "C:/Users/sprt_java/Downloads/jacob-1.21/jacob-1.21/" + jacobDllVersionToUse;
// 加载 Jacob DLL 文件
System.setProperty(LibraryLoader.JACOB_DLL_PATH, jacobDllFullPath);
LibraryLoader.loadJacobLibrary();
try {
// 初始化 BarTender 应用程序
ActiveXComponent btApp = new ActiveXComponent("BarTender.Application");
btApp.setProperty("Visible", new Variant(false));
// 打开指定的 BTW 文件
Dispatch btFormats = btApp.getProperty("Formats").toDispatch();
Dispatch btFormat = Dispatch.call(btFormats, "Open", "C:\\Users\\sprt_java\\Downloads\\模版001.btw", new Variant(false), new Variant("")).toDispatch();
// 设置打印机名称
Dispatch printSetup = Dispatch.get(btFormat, "PrintSetup").toDispatch();
Dispatch.put(printSetup, "Printer", "Zebra 110Xi4 (600 dpi)");
// 设置打印张数
Dispatch.put(btFormat, "IdenticalCopiesOfLabel", 10);
// 设置标签字段值
Dispatch.call(btFormat, "SetNamedSubStringValue", "model", "test001");
Dispatch.call(btFormat, "SetNamedSubStringValue", "qrCode", "test001");
// 打印标签
Dispatch.call(btFormat, "PrintOut", new Variant(true), new Variant(false));
// 保存赋值数据
Dispatch.call(btFormat, "Save");
// 关闭 BTW 文件
Dispatch.call(btFormat, "Close", new Variant(false));
} catch (Exception e) {
e.printStackTrace();
}
}
}