用Java编写一个打印标签客户端
点击运行启动会打开首页
可以点击预览打印
点击打印可测试成功
打印机结果
前端用的是thymeleaf
代码片段
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>首页</title>
<link rel="icon" th:href="@{/title.ico}" type="image/x-icon"/>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container-fluid">
<div class="col-sm-12 column">
<ol class="breadcrumb">
<li class="active">打印机客户端
</li>
<li class="active">打印机管理
</li>
</ol>
<!-- <a th:href="@{/printService/download}">操作手册.PDF</a> <br/>-->
<div class="table-responsive">
<table class="table table-striped ">
<thead>
<tr>
<th style="text-align:center">打印机名称</th>
<th style="text-align:center">打印机状态</th>
</tr>
</thead>
<tbody>
<!--
这里的 policyPublishDetailDtoList
是 Controller 通过 model.addAttribute("policyPublishDetailDtoList", list);传过来的
th:each th:text都是thymeleaf中常用的标签
-->
<tr th:each="printInfoDto:${printInfoVoDtoList}">
<td th:text="${printInfoDto.printName}" style="text-align:center;vertical-align:middle;"></td>
<td th:text="${printInfoDto.printStatus}" style="text-align:center;vertical-align:middle;"></td>
<td>
<div class="btn-group" th:if="${printInfoDto.status}">
<a class="btn btn-default" th:href="@{/printService/preview(printName=${printInfoDto.printName})}" th:text="${'预览 | ' + printInfoDto.printName}"></a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
后端代码文章来源:https://www.toymoban.com/news/detail-613381.html
/**
* 得到全部打印机
*/
@GetMapping("/printList")
public String printList(Model model, HttpServletRequest request) {
PrintInfoVo printInfoVo;
List<PrintInfoVo> printInfoVoList = new ArrayList<>();
List<String> totalPrinterList = PrintUtils.getTotalPrinterList();
if (totalPrinterList.size() > 0) {
//在线打印机
Map<String, String> map = PrintUtils.getZxPrinterMap();
//默认打印机
String defaultPrintName = PrintUtils.getDefaultPrintName();
// 遍历所有打印机的名称
for (String printer : totalPrinterList) {
printInfoVo = new PrintInfoVo();
printInfoVo.setStatus(false);
if (printer.equals(defaultPrintName)) {//默认打印机
printInfoVo.setPrintName(printer);
String PrintStatus = "默认打印机";
if (map.get(printer) == null) {
printInfoVo.setPrintStatus(PrintStatus + "-脱机");
} else {
printInfoVo.setPrintStatus(PrintStatus + "-在线");
printInfoVo.setStatus(true);
}
} else {//其他打印机
printInfoVo.setPrintName(printer);
if (map.get(printer) == null) {
printInfoVo.setPrintStatus("脱机");
} else {
printInfoVo.setPrintStatus("在线");
}
}
printInfoVoList.add(printInfoVo);
}
}
model.addAttribute("printInfoVoDtoList", printInfoVoList);
model.addAttribute("printInfoDto", new PrintInfoVo());
request.getSession().removeAttribute("relativePath");
return "printList";
}
/**
* 打印标签
*/
@GetMapping("/testPrint")
public String testPrint(String printName, Model model, HttpServletRequest request) {
//调用打印逻辑进行打印
PrintServer printServer = new PrintServer();
Result result = printServer.print(PrintUtils.InitialDateString);
model.addAttribute("printName", printName);
model.addAttribute("result", result.getMsg());
request.getSession().removeAttribute("relativePath");
return "result";
}
页面上预览图片和真实打印机打出来的不一致是正常的因为这是测试打印(测试本地电脑是否符合使用打印机客户端调用bartender进行打印)文章来源地址https://www.toymoban.com/news/detail-613381.html
到了这里,关于JAVA调用Bartender进行标签打印(可本地用打印机客户端进行测试打印,【云上的项目】可通过WebSocket进行通讯进行打印)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!