@ResponseBody
@RequestMapping(value = "/printPdf", method = RequestMethod.POST)
public List<String> printTemplate(@RequestBody List<PrintPdf> printList) {
return printList.parallelStream().map(this::handler).filter(Objects::nonNull).collect(Collectors.toList());
}
private String handler(PrintPdf printPdf) {
String name = PatternUtil.getMatchString(printPdf.getUrl().replaceAll("//", ""), Constant.reg, 1);
if (StrUtil.isNotEmpty(name)) {
String[] nameS = name.split("/");
name = nameS.length > 1 ? nameS[1] : "";
}
String printName = null;
if (CommandLineRunnerImpl.sheetSizeMap.get(printPdf.getLogisticsChannel()) == Constant.ONE) {
printName = Constant.deviceName_100;
}
if (CommandLineRunnerImpl.sheetSizeMap.get(printPdf.getLogisticsChannel()) == Constant.TWO) {
printName = Constant.deviceName_150;
}
if (CommandLineRunnerImpl.sheetSizeMap.get(printPdf.getLogisticsChannel()) == Constant.THREE) {
printName = Constant.deviceName_203;
}
logger.info("打印机名称:{},打印地址:{}", printName, printPdf.getUrl());
return PrintUtil.PrintPdf(printPdf.getUrl(), PrintUtil.getPager(), printName, name + ".pdf");
}
parallelStream多线程同步
最新推荐文章于 2023-12-22 17:51:12 发布
本文介绍了一个用于处理PDF打印任务的服务端方法,该方法接收一系列打印请求,并通过并行流处理来生成对应的PDF文件。根据物流渠道配置不同的打印设备,同时记录打印任务的日志。
615

被折叠的 条评论
为什么被折叠?



