diff --git a/jeecgboot-vue3/public/print-plugin/XSL-PrintDot.exe b/jeecgboot-vue3/public/print-plugin/XSL-PrintDot.exe new file mode 100644 index 00000000..f60882d7 Binary files /dev/null and b/jeecgboot-vue3/public/print-plugin/XSL-PrintDot.exe differ diff --git a/jeecgboot-vue3/src/views/print/template/index.vue b/jeecgboot-vue3/src/views/print/template/index.vue index c09c86cb..275c9f05 100644 --- a/jeecgboot-vue3/src/views/print/template/index.vue +++ b/jeecgboot-vue3/src/views/print/template/index.vue @@ -34,6 +34,7 @@ autocomplete="new-password" @blur="persistPrintDotConfig" /> + 下载打印插件 新增原生模板 快速打印 @@ -228,6 +229,20 @@ localStorage.setItem(LS_PRINT_DOT_ENABLED, printDotEnabled.value ? '1' : '0'); void refreshPrinterOptions(false); } + + /** 下载 PrintDot 桥接器(静态资源 public/print-plugin/XSL-PrintDot.exe) */ + function downloadPrintPlugin() { + const base = import.meta.env.BASE_URL || '/'; + const normalizedBase = base.endsWith('/') ? base : `${base}/`; + const url = `${normalizedBase}print-plugin/XSL-PrintDot.exe`; + const link = document.createElement('a'); + link.href = url; + link.setAttribute('download', 'XSL-PrintDot.exe'); + link.rel = 'noopener'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } /** 技能转换打印:示例数据(与快速打印占位说明一致) */ const SKILL_DATA_JSON_EXAMPLE = `{ "docNo": "MO-001",