From bb02c1cbd724565e72141928b7f5cc8485f8c550 Mon Sep 17 00:00:00 2001 From: zhousq Date: Mon, 29 Jul 2024 20:01:17 +0800 Subject: [PATCH] =?UTF-8?q?2024-07-29=20=E4=BF=AE=E6=94=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=89=93=E5=8D=B0=E6=9C=BA?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E3=80=81=E6=A8=A1=E7=89=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/wuliaotest.pdf | Bin 0 -> 182282 bytes .../print/WinPrintServerControler.java | 153 +++++---- .../WinPrintClientPrintersController.java | 127 ++++++++ .../win/print/domain/PrintModelDataVo.java | 1 + .../domain/WinPrintClientPrinterSimple.java | 71 +++++ .../print/domain/WinPrintClientPrinters.java | 182 +++++++++++ .../win/print/domain/WinPrintModelSimple.java | 56 ++++ .../mapper/WinPrintClientPrintersMapper.java | 65 ++++ .../win/print/mapper/WinPrintModelMapper.java | 3 + .../print/service/DictPrinterListService.java | 10 + .../IWinPrintClientPrintersService.java | 65 ++++ .../print/service/IWinPrintModelService.java | 2 + .../service/IWinPrintTasksLogsService.java | 2 + .../service/LocalPrinterDataUpdateTask.java | 40 +++ .../WinPrintClientPrintersServiceImpl.java | 109 +++++++ .../impl/WinPrintModelServiceImpl.java | 7 + .../impl/WinPrintTasksLogsServiceImpl.java | 28 ++ .../java/com/win/print/util/PdfModelUitl.java | 290 ++++++++++++++++++ .../print/WinPrintClientPrintersMapper.xml | 117 +++++++ .../mapper/print/WinPrintModelMapper.xml | 8 + .../templates/print/clientPrinters/add.html | 57 ++++ .../print/clientPrinters/clientPrinters.html | 111 +++++++ .../templates/print/clientPrinters/edit.html | 58 ++++ 23 files changed, 1497 insertions(+), 65 deletions(-) create mode 100644 models/wuliaotest.pdf create mode 100644 win-print/src/main/java/com/win/print/controller/WinPrintClientPrintersController.java create mode 100644 win-print/src/main/java/com/win/print/domain/WinPrintClientPrinterSimple.java create mode 100644 win-print/src/main/java/com/win/print/domain/WinPrintClientPrinters.java create mode 100644 win-print/src/main/java/com/win/print/domain/WinPrintModelSimple.java create mode 100644 win-print/src/main/java/com/win/print/mapper/WinPrintClientPrintersMapper.java create mode 100644 win-print/src/main/java/com/win/print/service/IWinPrintClientPrintersService.java create mode 100644 win-print/src/main/java/com/win/print/service/LocalPrinterDataUpdateTask.java create mode 100644 win-print/src/main/java/com/win/print/service/impl/WinPrintClientPrintersServiceImpl.java create mode 100644 win-print/src/main/java/com/win/print/util/PdfModelUitl.java create mode 100644 win-print/src/main/resources/mapper/print/WinPrintClientPrintersMapper.xml create mode 100644 win-print/src/main/resources/templates/print/clientPrinters/add.html create mode 100644 win-print/src/main/resources/templates/print/clientPrinters/clientPrinters.html create mode 100644 win-print/src/main/resources/templates/print/clientPrinters/edit.html diff --git a/models/wuliaotest.pdf b/models/wuliaotest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bcf3ab829e75d3c449ec9eb0f21fe89c0b6b30e7 GIT binary patch literal 182282 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 z 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 literal 0 HcmV?d00001 diff --git a/win-admin/src/main/java/com/win/web/controller/print/WinPrintServerControler.java b/win-admin/src/main/java/com/win/web/controller/print/WinPrintServerControler.java index 0573540..4ee1711 100644 --- a/win-admin/src/main/java/com/win/web/controller/print/WinPrintServerControler.java +++ b/win-admin/src/main/java/com/win/web/controller/print/WinPrintServerControler.java @@ -19,13 +19,11 @@ import com.win.common.core.controller.BaseController; import com.win.common.core.domain.AjaxResult; import com.win.common.utils.ServletUtils; import com.win.common.utils.file.FileUtils; -import com.win.print.domain.PrintModelDataVo; -import com.win.print.domain.WinPrintModel; -import com.win.print.domain.WinPrintModelParams; -import com.win.print.domain.WinPrintTasksLogs; +import com.win.print.domain.*; import com.win.print.service.*; import com.win.print.util.DataUnitl; import com.win.print.util.HTMLConvertUitl; +import com.win.print.util.PdfModelUitl; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; @@ -62,10 +60,13 @@ public class WinPrintServerControler extends BaseController { @Resource IWinPrintModelService winPrintModelService;//模版配置 @Resource - PrintTaskService printTaskService; + DictPrinterListService dictPrinterListService; @Resource IWinPrintTasksLogsService iPrintTasksLogsService; - + @Resource + IWinPrintClientPrintersService iWinPrintClientPrintersService; + @Resource + PdfModelUitl pdfModelUitl; @PostMapping("/model") @Operation(summary = "模版打印接口,服务调用只处理模版并生成pdf文件!") public AjaxResult getclientPdf(@RequestBody PrintModelDataVo dataVo) { @@ -74,11 +75,14 @@ public class WinPrintServerControler extends BaseController { } String fileServer ="http://"+ServletUtils.getRequest().getServerName()+":"+ServletUtils.getRequest().getServerPort()+prefix+"/file";//当前接收打印的服务器URL String modelCode = dataVo.getModelCode(); - String clientCode = dataVo.getClientCode(); - String printerName=dataVo.getPrinterName(); - if (StrUtil.isEmpty(clientCode)) { - return AjaxResult.error("打印失败!未指定打印客户端!"); + String printerUuid=dataVo.getPrinterUuid(); + WinPrintClientPrinterSimple winPrintClientPrinterSimple = iWinPrintClientPrintersService.selectWinPrintClientPrintersByUuid(printerUuid); + if (ObjectUtil.isEmpty(winPrintClientPrinterSimple)) { + return AjaxResult.error("打印失败!未找到指定打印机信息!!"); } + String clientCode = winPrintClientPrinterSimple.getClientCode(); + String printerName=winPrintClientPrinterSimple.getPrinterName(); + if (StrUtil.isEmpty(modelCode)) { return AjaxResult.error("打印失败!未指定模版!"); } @@ -116,10 +120,6 @@ public class WinPrintServerControler extends BaseController { //生成打印任务文件 String pdfDir = DataUnitl.getWorkingDir(printFilepath); String templateDir = DataUnitl.getWorkingDir(templatePathDefault); - if ("PDF".equalsIgnoreCase(modelType)) { - //渲染打印模版 - return AjaxResult.error("暂时不支持PDF模版打印!"); - } //获取参数和值-不给值默认空,数据为数组,数组大小为1时调用单页处理,数组大于1时 List winPrintModelParamsList = winPrintModel.getWinPrintModelParamsList(); List printData = dataVo.getPrintData(); @@ -127,28 +127,18 @@ public class WinPrintServerControler extends BaseController { String pdfPath = pdfDir + "/" ; if ("1".equals(dataVo.getDocModel())) { //单文单件务打印 String fileName= clientCode + "_" + modelCode + "_"+String.valueOf(System.currentTimeMillis()) + ".pdf"; - printMutilPage(winPrintModelParamsList, printData, modelName, pageSize, pdfPath +fileName, modelTypeSrc, templateDir); + printMutilPage(winPrintModelParamsList, printData, modelName, pageSize, pdfPath +fileName, modelTypeSrc, templateDir,modelType); //printTaskService.putTaskToQueue(info, DateUtil.now(),fileName,remoteAddr,"model",winPrintModel.getmPageSize(),winPrintModel.getmPageRotate(),1); - createTaskLog(clientCode,fileName,taskId,"model",modelCode,printerName, requestType,copyCounts, modelPage, isPageRolated, "",printeDate, fileServer); + iPrintTasksLogsService.createTaskLog(clientCode,fileName,taskId,"model",modelCode,printerName, requestType,copyCounts, modelPage, isPageRolated, "",printeDate, fileServer); } else { AtomicInteger fileCount = new AtomicInteger(1); String finalModelName = modelName; Date finalPrinteDate = printeDate; printData.forEach(pdata -> { - Map modelData = new HashMap<>(); - winPrintModelParamsList.forEach(item -> { - if ("QRIMG".equalsIgnoreCase(item.getParamType())) { - String mg = qrCodeService.getBase64QRCodeSrc(pdata.getString(item.getParamCode()), 172, 172, "png"); - modelData.put(item.getParamCode(), Optional.ofNullable(mg).orElse("")); - } else { - modelData.put(item.getParamCode(), Optional.ofNullable(pdata.getString(item.getParamCode())).orElse("")); - } - - }); String pdfFileName = clientCode + "_" + modelCode + "_"+ String.valueOf(fileCount.getAndIncrement()) + "_" + String.valueOf(System.currentTimeMillis()) + ".pdf"; File file = new File(pdfPath+pdfFileName); - printOneByOne(file, modelType, modelData, pageSize, finalModelName, modelTypeSrc, templateDir); - createTaskLog(clientCode,pdfFileName,taskId,"model",modelCode,printerName, requestType,copyCounts, modelPage, isPageRolated, "", finalPrinteDate,fileServer); + printOneByOne(winPrintModelParamsList,file, modelType, pdata, pageSize, finalModelName, modelTypeSrc, templateDir); + iPrintTasksLogsService.createTaskLog(clientCode,pdfFileName,taskId,"model",modelCode,printerName, requestType,copyCounts, modelPage, isPageRolated, "", finalPrinteDate,fileServer); }); } @@ -195,13 +185,14 @@ public class WinPrintServerControler extends BaseController { String taskId=IdUtil.fastSimpleUUID(); String printType_n = Optional.ofNullable(printType).orElse("doc"); Integer copyCounts_n=Optional.ofNullable(copyCounts).orElse(1); - createTaskLog(clientCode,fileName,taskId,printType_n,"file_model",printerName, "doc",copyCounts,String.valueOf(copyCounts_n) , "N", "", printTime_n,fileServer); + iPrintTasksLogsService.createTaskLog(clientCode,fileName,taskId,printType_n,"file_model",printerName, "doc",copyCounts,String.valueOf(copyCounts_n) , "N", "", printTime_n,fileServer); return AjaxResult.error("打印任务已发送,等待打印机处理!"); } /** * 获取打印文件预览 * */ @GetMapping("/file/{name}") + @ResponseBody public void pdfview(@PathVariable("name") String fileName, HttpServletResponse response) { try { @@ -209,60 +200,112 @@ public class WinPrintServerControler extends BaseController { response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, fileName); FileUtils.writeBytes(pdfDir+fileName, response.getOutputStream()); - + //return AjaxResult.success("任务成功下发!"); } catch (Exception e) { e.printStackTrace(); + }; } - + /** + * 数据库方式 + * 获取指定客户端编码的打印机列表,all时为所有客户端的所有打印机 + * 适用于固定服务接口的访问 + * */ + @GetMapping("/printerList") + @ResponseBody + public AjaxResult getPrinterList() { + return AjaxResult.success(iWinPrintClientPrintersService.selectClientPrintersList()); + } + @GetMapping("/printers/local") + @ResponseBody + public AjaxResult getPrinterLocalList() { + return AjaxResult.success(dictPrinterListService.getPrintersNameList()); + } + /** + * 获取在线客户端列表 + * */ + @GetMapping("/clientsList") + @ResponseBody + public AjaxResult getClientsList() { + WinPrintClientinfo winPrintClientinfo=new WinPrintClientinfo(); + return AjaxResult.success(winPrintClientinfoService.selectWinPrintClientinfoList(winPrintClientinfo)); + } + /** + * 获取模版列表 + * */ + @GetMapping("/modelList") + @ResponseBody + public AjaxResult getModelList() { + return AjaxResult.success(winPrintModelService.selectWinPrintModelListSimple()); + } /** * 单页打印 */ - private void printOneByOne(File pdfFileName, String modeType, Map data, PageSize pageSize, String modelName, String modeTypeSrc, String templatePath) { + private void printOneByOne(List paramList,File pdfFileName, String modeType, JSONObject data, PageSize pageSize, String modelName, String modeTypeSrc, String templatePath) { try { if ("PDF".equalsIgnoreCase(modeType)) { + pdfModelUitl.pdfMdelFromRender(paramList,pdfFileName,data,modelName,templatePath); log.info("处理PDF模版"); } else if ("freemarker".equalsIgnoreCase(modeType)) { log.info("处理freemarker模版"); } else { log.info("thymeleaf"); - HTMLConvertUitl.html2Pdf_thymeleaf(pdfFileName, data, pageSize, modelName, modeTypeSrc, templatePath); + Map modelData = new HashMap<>(); + paramList.forEach(item -> { + if ("QRIMG".equalsIgnoreCase(item.getParamType())) { + String mg = qrCodeService.getBase64QRCodeSrc(data.getString(item.getParamCode()), 172, 172, "png"); + modelData.put(item.getParamCode(), Optional.ofNullable(mg).orElse("")); + } else { + modelData.put(item.getParamCode(), Optional.ofNullable(data.getString(item.getParamCode())).orElse("")); + } + + }); + HTMLConvertUitl.html2Pdf_thymeleaf(pdfFileName, modelData, pageSize, modelName, modeTypeSrc, templatePath); } } catch (IOException e) { e.printStackTrace(); log.error("printOneByOne-error", e.toString()); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); } } /** * 多以合并 */ - private void printMutilPage(List paramList, List dataList, String modelName, PageSize pageSize, String fileName, String modeTypeSrc, String templatePath) { + private void printMutilPage(List paramList, List dataList, String modelName, PageSize pageSize, String fileName, String modeTypeSrc, String templatePath,String modelType) { try { PdfDocument destDoc = new PdfDocument(new PdfWriter(fileName)); destDoc.setDefaultPageSize(pageSize); PdfMerger pdfMerger = new PdfMerger(destDoc); dataList.forEach(pdata -> { try { - Map modelData = new HashMap<>(); - paramList.forEach(item -> { - if ("QRIMG".equalsIgnoreCase(item.getParamType())) { - String mg = qrCodeService.getBase64QRCodeSrc(pdata.getString(item.getParamCode()), 172, 172, "png"); - modelData.put(item.getParamCode(), Optional.ofNullable(mg).orElse("")); - } else { - modelData.put(item.getParamCode(), Optional.ofNullable(pdata.getString(item.getParamCode())).orElse("")); - } - }); File tempFile = File.createTempFile("temp_" + String.valueOf(System.currentTimeMillis()), ".pdf"); - HTMLConvertUitl.html2Pdf_thymeleaf(tempFile, modelData, pageSize, modelName, modeTypeSrc, templatePath); + if("PDF".equalsIgnoreCase(modelType)){ + pdfModelUitl.pdfMdelFromRender(paramList,tempFile,pdata,modelName,templatePath); + }else{ + Map modelData = new HashMap<>(); + paramList.forEach(item -> { + if ("QRIMG".equalsIgnoreCase(item.getParamType())) { + String mg = qrCodeService.getBase64QRCodeSrc(pdata.getString(item.getParamCode()), 172, 172, "png"); + modelData.put(item.getParamCode(), Optional.ofNullable(mg).orElse("")); + } else { + modelData.put(item.getParamCode(), Optional.ofNullable(pdata.getString(item.getParamCode())).orElse("")); + } + }); + HTMLConvertUitl.html2Pdf_thymeleaf(tempFile, modelData, pageSize, modelName, modeTypeSrc, templatePath); + } + PdfDocument sourcePdf = new PdfDocument(new PdfReader(tempFile)); pdfMerger.merge(sourcePdf, 1, sourcePdf.getNumberOfPages()); sourcePdf.close(); tempFile.delete(); } catch (IOException e) { throw new RuntimeException(e); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); } }); pdfMerger.close(); @@ -271,25 +314,5 @@ public class WinPrintServerControler extends BaseController { log.error("printMutilPage-error", e.toString()); } } - private void createTaskLog(String clientCode, String fileName, String taskId, String printType, String modelCode, String printerName, String requestType, Integer copyCounts, String modelPage, String isPageRolated, String remark, Date printTime,String fileServer){ - WinPrintTasksLogs logs=new WinPrintTasksLogs(); - logs.setClientCode(clientCode); - logs.setTaskId(Optional.ofNullable(taskId).orElse(IdUtil.fastSimpleUUID())); - logs.setCreatedBy(WinConfig.getClientCode()); - logs.setCreatedTime(DateUtil.date()); - logs.setDataFile(fileName); - logs.setIpAddr(fileServer); - logs.setPrintType(printType); - logs.setModelCode(modelCode); - logs.setPrinterName(printerName); - logs.setRequestType(requestType); - logs.setTaskStatus("0"); - logs.setSettingCode(""); - logs.setCopyCounts(copyCounts); - logs.setModelPage(modelPage); - logs.setIsPageRolated(isPageRolated); - logs.setRemark(remark); - logs.setPrintTime(printTime); - iPrintTasksLogsService.insertWinPrintTasksLogs(logs); - } + } diff --git a/win-print/src/main/java/com/win/print/controller/WinPrintClientPrintersController.java b/win-print/src/main/java/com/win/print/controller/WinPrintClientPrintersController.java new file mode 100644 index 0000000..fa8b2d3 --- /dev/null +++ b/win-print/src/main/java/com/win/print/controller/WinPrintClientPrintersController.java @@ -0,0 +1,127 @@ +package com.win.print.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.win.common.annotation.Log; +import com.win.common.enums.BusinessType; +import com.win.print.domain.WinPrintClientPrinters; +import com.win.print.service.IWinPrintClientPrintersService; +import com.win.common.core.controller.BaseController; +import com.win.common.core.domain.AjaxResult; +import com.win.common.utils.poi.ExcelUtil; +import com.win.common.core.page.TableDataInfo; + +/** + * 客户端打印机对照Controller + * + * @author zhousq + * @date 2024-07-29 + */ +@Controller +@RequestMapping("/print/clientPrinters") +public class WinPrintClientPrintersController extends BaseController +{ + private String prefix = "print/clientPrinters"; + + @Autowired + private IWinPrintClientPrintersService winPrintClientPrintersService; + + @RequiresPermissions("print:clientPrinters:view") + @GetMapping() + public String clientPrinters() + { + return prefix + "/clientPrinters"; + } + + /** + * 查询客户端打印机对照列表 + */ + @RequiresPermissions("print:clientPrinters:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(WinPrintClientPrinters winPrintClientPrinters) + { + startPage(); + List list = winPrintClientPrintersService.selectWinPrintClientPrintersList(winPrintClientPrinters); + return getDataTable(list); + } + + /** + * 导出客户端打印机对照列表 + */ + @RequiresPermissions("print:clientPrinters:export") + @Log(title = "客户端打印机对照", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(WinPrintClientPrinters winPrintClientPrinters) + { + List list = winPrintClientPrintersService.selectWinPrintClientPrintersList(winPrintClientPrinters); + ExcelUtil util = new ExcelUtil(WinPrintClientPrinters.class); + return util.exportExcel(list, "客户端打印机对照数据"); + } + + /** + * 新增客户端打印机对照 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存客户端打印机对照 + */ + @RequiresPermissions("print:clientPrinters:add") + @Log(title = "客户端打印机对照", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(WinPrintClientPrinters winPrintClientPrinters) + { + return toAjax(winPrintClientPrintersService.insertWinPrintClientPrinters(winPrintClientPrinters)); + } + + /** + * 修改客户端打印机对照 + */ + @RequiresPermissions("print:clientPrinters:edit") + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id , ModelMap mmap) + { + WinPrintClientPrinters winPrintClientPrinters = winPrintClientPrintersService.selectWinPrintClientPrintersById(id); + mmap.put("winPrintClientPrinters", winPrintClientPrinters); + return prefix + "/edit"; + } + + /** + * 修改保存客户端打印机对照 + */ + @RequiresPermissions("print:clientPrinters:edit") + @Log(title = "客户端打印机对照", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(WinPrintClientPrinters winPrintClientPrinters) + { + return toAjax(winPrintClientPrintersService.updateWinPrintClientPrinters(winPrintClientPrinters)); + } + + /** + * 删除客户端打印机对照 + */ + @RequiresPermissions("print:clientPrinters:remove") + @Log(title = "客户端打印机对照", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(winPrintClientPrintersService.deleteWinPrintClientPrintersByIds(ids)); + } +} diff --git a/win-print/src/main/java/com/win/print/domain/PrintModelDataVo.java b/win-print/src/main/java/com/win/print/domain/PrintModelDataVo.java index 39eba78..ad00483 100644 --- a/win-print/src/main/java/com/win/print/domain/PrintModelDataVo.java +++ b/win-print/src/main/java/com/win/print/domain/PrintModelDataVo.java @@ -31,6 +31,7 @@ public class PrintModelDataVo { * 打印机名称必须穿 * */ private String printerName; + private String printerUuid;//全局打印机编码 /** * 计划打印时间, * */ diff --git a/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinterSimple.java b/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinterSimple.java new file mode 100644 index 0000000..4dffc12 --- /dev/null +++ b/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinterSimple.java @@ -0,0 +1,71 @@ +package com.win.print.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.win.common.annotation.Excel; +import com.win.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 客户端打印机对照对象 win_print_client_printers + * + * @author zhousq + * @date 2024-07-29 + */ +public class WinPrintClientPrinterSimple extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 客户端编码 */ + @Excel(name = "客户端编码") + private String clientCode; + + /** 打印机名称 */ + @Excel(name = "打印机名称") + private String printerName; + @Excel(name = "打印机编码") + private String printerUuid ; + /** 打印机业务名称 */ + @Excel(name = "打印机业务名称") + private String printerNameBusy ; + + public void setClientCode(String clientCode) + { + this.clientCode = clientCode; + } + + public String getClientCode() + { + return clientCode; + } + + public void setPrinterName(String printerName) + { + this.printerName = printerName; + } + + public String getPrinterName() + { + return printerName; + } + + public String getPrinterUuid() { + return printerUuid; + } + + public void setPrinterUuid(String printerUuid) { + this.printerUuid = printerUuid; + } + + public String getPrinterNameBusy() { + return printerNameBusy; + } + + public void setPrinterNameBusy(String printerNameBusy) { + this.printerNameBusy = printerNameBusy; + } + + +} diff --git a/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinters.java b/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinters.java new file mode 100644 index 0000000..87d9aba --- /dev/null +++ b/win-print/src/main/java/com/win/print/domain/WinPrintClientPrinters.java @@ -0,0 +1,182 @@ +package com.win.print.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.win.common.annotation.Excel; +import com.win.common.core.domain.BaseEntity; + +/** + * 客户端打印机对照对象 win_print_client_printers + * + * @author zhousq + * @date 2024-07-29 + */ +public class WinPrintClientPrinters extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 租户号 */ + private String tenantId; + + /** 乐观锁 */ + private Long revision; + + /** 创建人 */ + private String createdBy; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createdTime; + + /** 更新人 */ + private String updatedBy; + + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date updatedTime; + + /** 客户端编码 */ + @Excel(name = "客户端编码") + private String clientCode; + + /** 打印机名称 */ + @Excel(name = "打印机名称") + private String printerName; + @Excel(name = "打印机编码") + private String printerUuid ; + /** 打印机业务名称 */ + @Excel(name = "打印机业务名称") + private String printerNameBusy ; + private Long id; + private String status; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public void setTenantId(String tenantId) + { + this.tenantId = tenantId; + } + + public String getTenantId() + { + return tenantId; + } + + public void setRevision(Long revision) + { + this.revision = revision; + } + + public Long getRevision() + { + return revision; + } + + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + public String getCreatedBy() + { + return createdBy; + } + + public void setCreatedTime(Date createdTime) + { + this.createdTime = createdTime; + } + + public Date getCreatedTime() + { + return createdTime; + } + + public void setUpdatedBy(String updatedBy) + { + this.updatedBy = updatedBy; + } + + public String getUpdatedBy() + { + return updatedBy; + } + + public void setUpdatedTime(Date updatedTime) + { + this.updatedTime = updatedTime; + } + + public Date getUpdatedTime() + { + return updatedTime; + } + + public void setClientCode(String clientCode) + { + this.clientCode = clientCode; + } + + public String getClientCode() + { + return clientCode; + } + + public void setPrinterName(String printerName) + { + this.printerName = printerName; + } + + public String getPrinterName() + { + return printerName; + } + + public String getPrinterUuid() { + return printerUuid; + } + + public void setPrinterUuid(String printerUuid) { + this.printerUuid = printerUuid; + } + + public String getPrinterNameBusy() { + return printerNameBusy; + } + + public void setPrinterNameBusy(String printerNameBusy) { + this.printerNameBusy = printerNameBusy; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("tenantId", getTenantId()) + .append("revision", getRevision()) + .append("createdBy", getCreatedBy()) + .append("createdTime", getCreatedTime()) + .append("updatedBy", getUpdatedBy()) + .append("updatedTime", getUpdatedTime()) + .append("clientCode", getClientCode()) + .append("printerName", getPrinterName()) + .toString(); + } +} diff --git a/win-print/src/main/java/com/win/print/domain/WinPrintModelSimple.java b/win-print/src/main/java/com/win/print/domain/WinPrintModelSimple.java new file mode 100644 index 0000000..e1691ae --- /dev/null +++ b/win-print/src/main/java/com/win/print/domain/WinPrintModelSimple.java @@ -0,0 +1,56 @@ +package com.win.print.domain; + +import com.win.common.annotation.Excel; +import com.win.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; +import java.util.List; + +/** + * 打印模版设置对象 win_print_model + * + * @author zhousq + * @date 2024-07-22 + */ + +public class WinPrintModelSimple extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + + + /** 模版名称 */ + //"模版名称") + private String mName; + + /** 模版编号 */ + //模版编号" + private String mCode; + + + + + public void setmName(String mName) + { + this.mName = mName; + } + + public String getmName() + { + return mName; + } + + public void setmCode(String mCode) + { + this.mCode = mCode; + } + + public String getmCode() + { + return mCode; + } + + +} diff --git a/win-print/src/main/java/com/win/print/mapper/WinPrintClientPrintersMapper.java b/win-print/src/main/java/com/win/print/mapper/WinPrintClientPrintersMapper.java new file mode 100644 index 0000000..753c474 --- /dev/null +++ b/win-print/src/main/java/com/win/print/mapper/WinPrintClientPrintersMapper.java @@ -0,0 +1,65 @@ +package com.win.print.mapper; + +import java.util.List; + +import com.win.print.domain.WinPrintClientPrinterSimple; +import com.win.print.domain.WinPrintClientPrinters; + +/** + * 客户端打印机对照Mapper接口 + * + * @author zhousq + * @date 2024-07-29 + */ +public interface WinPrintClientPrintersMapper +{ + /** + * 查询客户端打印机对照 + * + * @param id 客户端打印机对照主键 + * @return 客户端打印机对照 + */ + public WinPrintClientPrinters selectWinPrintClientPrintersById(Long id); + public WinPrintClientPrinterSimple selectClientPrinteByUuid(String uuid); + + /** + * 查询客户端打印机对照列表 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 客户端打印机对照集合 + */ + public List selectWinPrintClientPrintersList(WinPrintClientPrinters winPrintClientPrinters); + public List selectClientPrintersList(); + /** + * 新增客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + public int insertWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters); + + /** + * 修改客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + public int updateWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters); + + /** + * 删除客户端打印机对照 + * + * @param id 客户端打印机对照主键 + * @return 结果 + */ + public int deleteWinPrintClientPrintersById(Long id); + public int deleteWinPrintClientPrintersByCode(String code); + + /** + * 批量删除客户端打印机对照 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWinPrintClientPrintersByIds(String[] ids); +} diff --git a/win-print/src/main/java/com/win/print/mapper/WinPrintModelMapper.java b/win-print/src/main/java/com/win/print/mapper/WinPrintModelMapper.java index e721c83..d013ffa 100644 --- a/win-print/src/main/java/com/win/print/mapper/WinPrintModelMapper.java +++ b/win-print/src/main/java/com/win/print/mapper/WinPrintModelMapper.java @@ -3,6 +3,7 @@ package com.win.print.mapper; import java.util.List; import com.win.print.domain.WinPrintModel; import com.win.print.domain.WinPrintModelParams; +import com.win.print.domain.WinPrintModelSimple; /** * 打印模版设置Mapper接口 @@ -19,6 +20,8 @@ public interface WinPrintModelMapper * @return 打印模版设置 */ public WinPrintModel selectWinPrintModelById(Long id); + public WinPrintModelSimple selectWinPrintModelListSimple(); + public WinPrintModel selectWinPrintModelByCode(String code); /** * 查询打印模版设置列表 diff --git a/win-print/src/main/java/com/win/print/service/DictPrinterListService.java b/win-print/src/main/java/com/win/print/service/DictPrinterListService.java index a7d547e..8acf774 100644 --- a/win-print/src/main/java/com/win/print/service/DictPrinterListService.java +++ b/win-print/src/main/java/com/win/print/service/DictPrinterListService.java @@ -31,4 +31,14 @@ public class DictPrinterListService { } return ret; } + public List getPrintersNameList(){ + PrintService[] printServices = PrinterJob.lookupPrintServices(); + List ret=new ArrayList<>(); + if(printServices.length>0){ + for(int i=0;i selectWinPrintClientPrintersList(WinPrintClientPrinters winPrintClientPrinters); + public List selectClientPrintersList(); + /** + * 新增客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + public int insertWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters); + + /** + * 修改客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + public int updateWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters); + + /** + * 批量删除客户端打印机对照 + * + * @param ids 需要删除的客户端打印机对照主键集合 + * @return 结果 + */ + public int deleteWinPrintClientPrintersByIds(String ids); + + /** + * 删除客户端打印机对照信息 + * + * @param id 客户端打印机对照主键 + * @return 结果 + */ + public int deleteWinPrintClientPrintersById(Long id); + public int deleteWinPrintClientPrintersByCode(String code); + +} diff --git a/win-print/src/main/java/com/win/print/service/IWinPrintModelService.java b/win-print/src/main/java/com/win/print/service/IWinPrintModelService.java index c68b726..90086b2 100644 --- a/win-print/src/main/java/com/win/print/service/IWinPrintModelService.java +++ b/win-print/src/main/java/com/win/print/service/IWinPrintModelService.java @@ -2,6 +2,7 @@ package com.win.print.service; import java.util.List; import com.win.print.domain.WinPrintModel; +import com.win.print.domain.WinPrintModelSimple; /** * 打印模版设置Service接口 @@ -18,6 +19,7 @@ public interface IWinPrintModelService * @return 打印模版设置 */ public WinPrintModel selectWinPrintModelById(Long id); + public WinPrintModelSimple selectWinPrintModelListSimple(); /** * 查询打印模版设置列表 diff --git a/win-print/src/main/java/com/win/print/service/IWinPrintTasksLogsService.java b/win-print/src/main/java/com/win/print/service/IWinPrintTasksLogsService.java index 9cca78b..6ddf326 100644 --- a/win-print/src/main/java/com/win/print/service/IWinPrintTasksLogsService.java +++ b/win-print/src/main/java/com/win/print/service/IWinPrintTasksLogsService.java @@ -1,5 +1,6 @@ package com.win.print.service; +import java.util.Date; import java.util.List; import com.win.print.domain.WinPrintTasksLogs; @@ -59,4 +60,5 @@ public interface IWinPrintTasksLogsService * @return 结果 */ public int deleteWinPrintTasksLogsById(Long id); + public void createTaskLog(String clientCode, String fileName, String taskId, String printType, String modelCode, String printerName, String requestType, Integer copyCounts, String modelPage, String isPageRolated, String remark, Date printTime, String fileServer); } diff --git a/win-print/src/main/java/com/win/print/service/LocalPrinterDataUpdateTask.java b/win-print/src/main/java/com/win/print/service/LocalPrinterDataUpdateTask.java new file mode 100644 index 0000000..e5e9ba5 --- /dev/null +++ b/win-print/src/main/java/com/win/print/service/LocalPrinterDataUpdateTask.java @@ -0,0 +1,40 @@ +package com.win.print.service; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.win.common.config.WinConfig; +import com.win.print.domain.WinPrintClientPrinters; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 手动任务可以下发通知,接收到打印数据更新 + * + * */ +@Service +public class LocalPrinterDataUpdateTask { + @Resource + IWinPrintClientPrintersService iWinPrintClientPrintersService; + @Resource + DictPrinterListService dictPrinterListService; + @Transactional() + public void updatePrinterToDb(){ + iWinPrintClientPrintersService.deleteWinPrintClientPrintersByCode(WinConfig.getClientCode()); + List printersNameList = dictPrinterListService.getPrintersNameList(); + if(CollUtil.isNotEmpty(printersNameList)){ + printersNameList.forEach(item->{ + WinPrintClientPrinters wp=new WinPrintClientPrinters(); + wp.setUpdatedBy("auto"); + wp.setCreatedBy("auto"); + wp.setPrinterName(item); + wp.setUpdatedTime(DateUtil.date()); + wp.setCreatedTime(DateUtil.date()); + wp.setClientCode(WinConfig.getClientCode()); + iWinPrintClientPrintersService.insertWinPrintClientPrinters(wp); + }); + } + } +} diff --git a/win-print/src/main/java/com/win/print/service/impl/WinPrintClientPrintersServiceImpl.java b/win-print/src/main/java/com/win/print/service/impl/WinPrintClientPrintersServiceImpl.java new file mode 100644 index 0000000..a5f5b7a --- /dev/null +++ b/win-print/src/main/java/com/win/print/service/impl/WinPrintClientPrintersServiceImpl.java @@ -0,0 +1,109 @@ +package com.win.print.service.impl; + +import java.util.List; + +import com.win.print.domain.WinPrintClientPrinterSimple; +import jakarta.annotation.Resource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.win.print.mapper.WinPrintClientPrintersMapper; +import com.win.print.domain.WinPrintClientPrinters; +import com.win.print.service.IWinPrintClientPrintersService; +import com.win.common.core.text.Convert; + +/** + * 客户端打印机对照Service业务层处理 + * + * @author zhousq + * @date 2024-07-29 + */ +@Service +public class WinPrintClientPrintersServiceImpl implements IWinPrintClientPrintersService +{ + @Resource + private WinPrintClientPrintersMapper winPrintClientPrintersMapper; + + /** + * 查询客户端打印机对照 + * + * @param id 客户端打印机对照主键 + * @return 客户端打印机对照 + */ + @Override + public WinPrintClientPrinters selectWinPrintClientPrintersById(Long id) + { + return winPrintClientPrintersMapper.selectWinPrintClientPrintersById(id); + } + @Override + public WinPrintClientPrinterSimple selectWinPrintClientPrintersByUuid(String uuid) + { + return winPrintClientPrintersMapper.selectClientPrinteByUuid(uuid); + } + + /** + * 查询客户端打印机对照列表 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 客户端打印机对照 + */ + @Override + public List selectWinPrintClientPrintersList(WinPrintClientPrinters winPrintClientPrinters) + { + return winPrintClientPrintersMapper.selectWinPrintClientPrintersList(winPrintClientPrinters); + } + @Override + public List selectClientPrintersList(){ + return winPrintClientPrintersMapper.selectClientPrintersList(); + } + /** + * 新增客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + @Override + public int insertWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters) + { + return winPrintClientPrintersMapper.insertWinPrintClientPrinters(winPrintClientPrinters); + } + + /** + * 修改客户端打印机对照 + * + * @param winPrintClientPrinters 客户端打印机对照 + * @return 结果 + */ + @Override + public int updateWinPrintClientPrinters(WinPrintClientPrinters winPrintClientPrinters) + { + return winPrintClientPrintersMapper.updateWinPrintClientPrinters(winPrintClientPrinters); + } + + /** + * 批量删除客户端打印机对照 + * + * @param ids 需要删除的客户端打印机对照主键 + * @return 结果 + */ + @Override + public int deleteWinPrintClientPrintersByIds(String ids) + { + return winPrintClientPrintersMapper.deleteWinPrintClientPrintersByIds(Convert.toStrArray(ids)); + } + + /** + * 删除客户端打印机对照信息 + * + * @param id 客户端打印机对照主键 + * @return 结果 + */ + @Override + public int deleteWinPrintClientPrintersById(Long id) + { + return winPrintClientPrintersMapper.deleteWinPrintClientPrintersById(id); + } + @Override + public int deleteWinPrintClientPrintersByCode(String code){ + return winPrintClientPrintersMapper.deleteWinPrintClientPrintersByCode(code); + } +} diff --git a/win-print/src/main/java/com/win/print/service/impl/WinPrintModelServiceImpl.java b/win-print/src/main/java/com/win/print/service/impl/WinPrintModelServiceImpl.java index c40fd49..118f1d0 100644 --- a/win-print/src/main/java/com/win/print/service/impl/WinPrintModelServiceImpl.java +++ b/win-print/src/main/java/com/win/print/service/impl/WinPrintModelServiceImpl.java @@ -4,6 +4,7 @@ import java.util.Date; import java.util.List; import cn.hutool.core.date.DateUtil; +import com.win.print.domain.WinPrintModelSimple; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -39,6 +40,12 @@ public class WinPrintModelServiceImpl implements IWinPrintModelService { return winPrintModelMapper.selectWinPrintModelById(id); + } + @Override + public WinPrintModelSimple selectWinPrintModelListSimple() + { + return winPrintModelMapper.selectWinPrintModelListSimple(); + } @Override diff --git a/win-print/src/main/java/com/win/print/service/impl/WinPrintTasksLogsServiceImpl.java b/win-print/src/main/java/com/win/print/service/impl/WinPrintTasksLogsServiceImpl.java index 9a83fe8..d1661c1 100644 --- a/win-print/src/main/java/com/win/print/service/impl/WinPrintTasksLogsServiceImpl.java +++ b/win-print/src/main/java/com/win/print/service/impl/WinPrintTasksLogsServiceImpl.java @@ -1,6 +1,12 @@ package com.win.print.service.impl; +import java.util.Date; import java.util.List; +import java.util.Optional; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.win.common.config.WinConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.win.print.mapper.WinPrintTasksLogsMapper; @@ -104,4 +110,26 @@ public class WinPrintTasksLogsServiceImpl implements IWinPrintTasksLogsService { return winPrintTasksLogsMapper.deleteWinPrintTasksLogsById(id); } + @Override + public void createTaskLog(String clientCode, String fileName, String taskId, String printType, String modelCode, String printerName, String requestType, Integer copyCounts, String modelPage, String isPageRolated, String remark, Date printTime, String fileServer){ + WinPrintTasksLogs logs=new WinPrintTasksLogs(); + logs.setClientCode(clientCode); + logs.setTaskId(Optional.ofNullable(taskId).orElse(IdUtil.fastSimpleUUID())); + logs.setCreatedBy(WinConfig.getClientCode()); + logs.setCreatedTime(DateUtil.date()); + logs.setDataFile(fileName); + logs.setIpAddr(fileServer); + logs.setPrintType(printType); + logs.setModelCode(modelCode); + logs.setPrinterName(printerName); + logs.setRequestType(requestType); + logs.setTaskStatus("0"); + logs.setSettingCode(""); + logs.setCopyCounts(copyCounts); + logs.setModelPage(modelPage); + logs.setIsPageRolated(isPageRolated); + logs.setRemark(remark); + logs.setPrintTime(printTime); + winPrintTasksLogsMapper.insertWinPrintTasksLogs(logs); + } } diff --git a/win-print/src/main/java/com/win/print/util/PdfModelUitl.java b/win-print/src/main/java/com/win/print/util/PdfModelUitl.java new file mode 100644 index 0000000..82ef66b --- /dev/null +++ b/win-print/src/main/java/com/win/print/util/PdfModelUitl.java @@ -0,0 +1,290 @@ +package com.win.print.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.img.ImgUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.itextpdf.forms.PdfAcroForm; +import com.itextpdf.forms.fields.PdfFormField; +import com.itextpdf.io.font.PdfEncodings; +import com.itextpdf.io.image.ImageData; +import com.itextpdf.io.image.ImageDataFactory; +import com.itextpdf.io.image.ImageType; +import com.itextpdf.kernel.font.PdfFont; +import com.itextpdf.kernel.font.PdfFontFactory; +import com.itextpdf.kernel.geom.Rectangle; +import com.itextpdf.kernel.pdf.*; +import com.itextpdf.kernel.pdf.annot.PdfAnnotation; +import com.itextpdf.kernel.pdf.annot.PdfWidgetAnnotation; +import com.itextpdf.kernel.pdf.canvas.PdfCanvas; +import com.win.common.utils.file.ImageUtils; +import com.win.print.domain.WinPrintModel; +import com.win.print.domain.WinPrintModelParams; +import com.win.print.service.IWinPrintModelParamsService; +import com.win.print.service.IWinPrintModelService; +import com.win.print.service.IWinPrintTasksLogsService; +import com.win.print.service.QRCodeService; +import jakarta.annotation.Resource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.awt.*; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + + + +/** + * pdf 模版处理工具类 + */ +@Service +public class PdfModelUitl { + private static final Logger log = LoggerFactory.getLogger(PdfModelUitl.class); + //通过pdfform方式进行模版渲染后生成新的文档 + + @Resource + QRCodeService qrCodeService; + @Value("${win.path.template}") + private String templatePathDefault; //打印模版的存储路径 + @Value("${win.path.print}") + private String printFilepath; //生成的打印文件存储路径 + /** + * 待填充的PDF模板文档 + */ + + + public void pdfMdelFromRender(List paramsList,File tempFile, JSONObject data, String modelName, String templatePath) throws IOException, NoSuchFieldException { + PdfReader reader = new PdfReader(templatePath+"/"+modelName); + PdfWriter writer = new PdfWriter(tempFile); + PdfDocument pdf = new PdfDocument(reader, writer); + PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true); + if (CollUtil.isNotEmpty(paramsList)) { + if (ObjectUtil.isNotEmpty(data)) { + paramsList.forEach(item -> { + if ("QRIMG".equals(item.getParamType())) { + //渲染Qr图片 + qrCodeService.generateQRCode(Optional.ofNullable(data.getString(item.getParamCode())).orElse(""),172,172); + + } else if ("IMG".equals(item.getParamType())) { + //渲染普通图片 + } else { + Optional.ofNullable( form.getField(item.getParamCode())).ifPresent(act->{act.setValue(Optional.ofNullable(data.getString(item.getParamCode())).orElse(""));}); + } + + }); + } else { + throw new NoSuchFieldException("没有任何可渲染的数据内容!"); + } + } else { //如果没有配置任何模版参数抛出异常 + throw new NoSuchFieldException("没找到模版的参数配置信息!"); + } + + // 重复以上步骤,根据需要填充所有字段 + // 设置表单为只读(可选) + form.flattenFields(); + pdf.close(); + } + + + /** + * 填充及返回填充后的数据 + * + * @param fillData - 待填充数据 + * @return - 填充后bytes数据 + */ + public void fill(Map fillData,PdfDocument templateDocument) { + try { + PdfAcroForm form = PdfAcroForm.getAcroForm(templateDocument, true); + fillData.forEach((keyword, value) -> { + Optional.ofNullable(form.getField(keyword)).ifPresent(templateFormField -> { + if (value instanceof byte[]) { + PdfArray pos = templateFormField.getWidgets().get(0).getRectangle(); + float x = pos.getAsNumber(0).floatValue(); + float y = pos.getAsNumber(1).floatValue(); + float width = pos.getAsNumber(2).floatValue() - x; + float height = pos.getAsNumber(3).floatValue() - y; + Rectangle rectangle = new Rectangle(x, y, width, height); + PdfWidgetAnnotation widget = new PdfWidgetAnnotation(rectangle); + PdfFormField formField = PdfFormField.createEmptyField(templateDocument); + PdfPage annotationPage = findAnnotationPage(keyword,templateDocument); + if (annotationPage != null) { + doFillFieldImage(annotationPage, formField, (byte[]) value); + } + } else { + templateFormField.setValue(String.valueOf(value)); + if (defaultFont() != null) { + templateFormField.setFont(templateFormField.getFont()); + } + } + form.partialFormFlattening(keyword); + }); + }); + form.flattenFields(); + } finally { + if (templateDocument != null) { + templateDocument.close(); + } + } + + } + /** + * 图片填充 + * + * @param newPage - 当前页 + * @param formField - 表单文本域 + * @param imgBytes - 图片文件字节数组 + */ + private void doFillFieldImage(PdfPage newPage, PdfFormField formField, byte[] imgBytes) { + Rectangle rtl = formField.getWidgets().get(0).getRectangle().toRectangle(); // 获取表单域的xy坐标 + PdfCanvas canvas = new PdfCanvas(newPage); + ImageData img = ImageDataFactory.create(imgBytes); + if (Float.compare(img.getWidth(), rtl.getWidth()) <= 0 && Float.compare(img.getHeight(), rtl.getHeight()) <= 0) {// 不处理 + canvas.addImage(img, rtl.getX(), rtl.getY(), true); + } else { + // 压缩图片。计算得到图片放缩的最大比例 + float scale = Math.max(img.getWidth() / rtl.getWidth(), img.getHeight() / rtl.getHeight()); + int imgWidth = Math.round(img.getWidth() / scale); + int imgHeight = Math.round(img.getHeight() / scale); + // 压缩图片 + byte[] compressImgBytes; + Image scale1 = ImgUtil.scale(ImgUtil.toImage(imgBytes), scale); + compressImgBytes = ImgUtil.toBytes(scale1, ImgUtil.IMAGE_TYPE_PNG); + img = ImageDataFactory.create(compressImgBytes); + canvas.addImage(img, rtl.getX(), rtl.getY(), true); + } + } + + /** + * 根据表单域关键字查找当前关键字所在页对象(PdfPage) + * + * @param keyword - 关键字 + * @return - page object + */ + private PdfPage findAnnotationPage(String keyword,PdfDocument templateDocument) { + int pages = templateDocument.getNumberOfPages(); + for (int index = 1; index <= pages; index++) { + PdfPage page = templateDocument.getPage(index); + for (PdfAnnotation annotation : page.getAnnotations()) { + PdfString title = annotation.getPdfObject().getAsString(PdfName.T); + if (title != null && keyword.equals(String.valueOf(title))) { + return page; + } + } + } + return null; + } + + /** + * 获取模板文件表单域关键字位置信息 + */ + private Map> getFormKeywordsPos(PdfDocument templateDocument) { + int pages = templateDocument.getNumberOfPages(); + Map> maps = new HashMap<>(pages); + for (int index = 1; index <= pages; index++) { + maps.putIfAbsent(index, new HashMap<>()); + PdfPage page = templateDocument.getPage(index); + // 获取当前页的表单域 + int finalIndex = index; + page.getAnnotations().forEach(anno -> { + PdfString title = anno.getTitle(); + PdfArray rectangle = anno.getRectangle(); + float x = rectangle.getAsNumber(0).floatValue(); + float y = rectangle.getAsNumber(1).floatValue(); + float width = rectangle.getAsNumber(2).floatValue() - x; + float height = rectangle.getAsNumber(3).floatValue() - y; + maps.get(finalIndex).put(title.getValue(), new float[]{x, y, width, height}); + }); + } + return maps; + } + + /** + * 加载字体 + */ + private static final String ILLEGAL_CHARACTERS_REGEX = "[\\\\/:*?\"<>|]"; + private static final String DEFAULT_FONT_PATH = "/fonts/STKAITI.TTF"; + private static final String DEFAULT_EXTEND_PATH = "/fonts/extend/"; + private static final Map FONTS_MAP = fontsMap(); + /** + * 默认字体 + * @return PdfFont + * @throws IOException + */ + private PdfFont defaultFont() { + // 默认华文楷体 + PdfFont baseFont; + try { + baseFont = PdfFontFactory.createFont(DEFAULT_FONT_PATH, PdfEncodings.IDENTITY_H); + } catch (Exception e) { + throw new RuntimeException("无法获取默认字体:" + e.getMessage(),e); + } + return baseFont; + } + /** + * 获取字体 + * @param font 字体信息 + * @return PdfFont + */ + String extendPath = "D:\\fonts\\"; + private PdfFont getFont(PdfFont font) { + String fontName = font.getFontProgram().getFontNames().getFontName(); + String fontKey = FONTS_MAP.get(fontName); + if(fontKey==null){ + font = defaultFont(); + }else { + try { + if(fontKey.toLowerCase().endsWith("ttc")){ + font = PdfFontFactory.createFont(this.extendPath + fontKey + ",0", PdfEncodings.IDENTITY_H); + }else { + font = PdfFontFactory.createFont(this.extendPath + fontKey, PdfEncodings.IDENTITY_H); + } + } catch (IOException e) { + font = defaultFont(); + e.printStackTrace(); + } + } + return font; + } + /** + * 字体映射关系 + * @return + */ + private static Map fontsMap(){ + Map map = new HashMap<>(); + // 字体映射关系,可扩展 + // itext字体标注/字体文件名 + map.put("DengXian", "Deng.ttf");//等线 + map.put("DengXian-Light", "Dengl.ttf");//等线Light + map.put("DengXian,Bold", "Dengb.ttf");//等线粗体 + map.put("FZShuTi", "FZSTK.TTF");//方正舒体 + map.put("FZYaoTi", "FZYTK.TTF");//方正姚体 + map.put("FangSong", "simfang.ttf");//仿宋 + map.put("SimHei", "simhei.ttf");//黑体 + map.put("STCaiyun", "STCAIYUN.TTF");//华文彩云 + map.put("STFangsong", "STFANGSO.TTF");//华文仿宋 + map.put("STHupo", "STHUPO.TTF");//华文琥珀 + map.put("STKaiti", "STKAITI.TTF");//华文楷体 + map.put("STLiti", "STLITI.TTF");//华文隶书 + map.put("STSong", "STSONG.TTF");//华文宋体 + map.put("STXihei", "STXIHEI.TTF");//华文细黑 + map.put("STXinwei", "STXINWEI.TTF");//华文新魏 + map.put("STXingkai", "STXINGKA.TTF");//华文行楷 + map.put("STZhongsong", "STZHONGS.TTF");//华文中宋 + map.put("KaiTi", "simkai.ttf");//楷体 + map.put("LiSu", "SIMLI.TTF");//隶书 + map.put("SimSun", "simsun.ttc");//宋体 + map.put("MicrosoftYaHei", "msyh.ttc");//微软雅黑 + map.put("MicrosoftYaHeiLight", "msyhl.ttc");//微软雅黑Light + map.put("MicrosoftYaHei,Bold", "msyhbd.ttc");//微软雅黑粗体 + map.put("NSimSun", "simsun.ttc");//新宋体 + map.put("YouYuan", "SIMYOU.TTF");//幼圆 + return map; + } +} diff --git a/win-print/src/main/resources/mapper/print/WinPrintClientPrintersMapper.xml b/win-print/src/main/resources/mapper/print/WinPrintClientPrintersMapper.xml new file mode 100644 index 0000000..ecd0ff1 --- /dev/null +++ b/win-print/src/main/resources/mapper/print/WinPrintClientPrintersMapper.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select tenant_id, revision, created_by, created_time, updated_by, updated_time, client_code, printer_name,printer_uuid,printer_name_busy,id,status from win_print_client_printers + + + + + + + + + insert into win_print_client_printers + + tenant_id, + revision, + created_by, + created_time, + updated_by, + updated_time, + client_code, + printer_name, + printer_uuid, + printer_name_busy, + status, + + + #{tenantId}, + #{revision}, + #{createdBy}, + #{createdTime}, + #{updatedBy}, + #{updatedTime}, + #{clientCode}, + #{printerName}, + #{printerUuid}, + #{printerNameBusy}, + #{status}, + + + + + update win_print_client_printers + + revision = #{revision}, + created_by = #{createdBy}, + created_time = #{createdTime}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime}, + client_code = #{clientCode}, + printer_name = #{printerName}, + printer_uuid=#{printerUuid}, + printer_name_busy=#{printerNameBusy}, + status=#{status}, + + where id = #{id} + + + + delete from win_print_client_printers where id = #{id} + + + delete from win_print_client_printers where printer_uuid = #{uuid} + + + delete from win_print_client_printers where client_code = #{clientCode} + + + + delete from win_print_client_printers where id in + + #{id} + + + + \ No newline at end of file diff --git a/win-print/src/main/resources/mapper/print/WinPrintModelMapper.xml b/win-print/src/main/resources/mapper/print/WinPrintModelMapper.xml index 51a3f3d..5927acf 100644 --- a/win-print/src/main/resources/mapper/print/WinPrintModelMapper.xml +++ b/win-print/src/main/resources/mapper/print/WinPrintModelMapper.xml @@ -23,6 +23,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -62,6 +66,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + + + +

+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/win-print/src/main/resources/templates/print/clientPrinters/clientPrinters.html b/win-print/src/main/resources/templates/print/clientPrinters/clientPrinters.html new file mode 100644 index 0000000..8b7ae82 --- /dev/null +++ b/win-print/src/main/resources/templates/print/clientPrinters/clientPrinters.html @@ -0,0 +1,111 @@ + + + + + + +
+ + + + \ No newline at end of file diff --git a/win-print/src/main/resources/templates/print/clientPrinters/edit.html b/win-print/src/main/resources/templates/print/clientPrinters/edit.html new file mode 100644 index 0000000..4f64c73 --- /dev/null +++ b/win-print/src/main/resources/templates/print/clientPrinters/edit.html @@ -0,0 +1,58 @@ + + + + + + +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ + + + \ No newline at end of file