vg-print 1.1.219 → 1.1.221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -24
- package/dist/style.css +1 -1
- package/dist/vg-print.es.js +39081 -38849
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
# vg-print
|
|
2
2
|
|
|
3
|
-
[开源免费]一个开箱即用的打印设计器组件库(Vue 3)。现在聚焦于单一组件 `FullDesigner`,同时暴露底层 `hiprint` 能力与客户端直连(`hiwebSocket`)配置,便于快速集成模板设计、预览、浏览器打印、导出 PDF/图片、直接打印、客户端生成pdf/图片、数据源管理、多语言支持等功能。
|
|
3
|
+
\[开源免费]一个开箱即用的打印设计器组件库(Vue 3)。现在聚焦于单一组件 `FullDesigner`,同时暴露底层 `hiprint` 能力与客户端直连(`hiwebSocket`)配置,便于快速集成模板设计、预览、浏览器打印、导出 PDF/图片、直接打印、客户端生成pdf/图片、数据源管理、多语言支持等功能。
|
|
4
|
+
|
|
4
5
|
- 您可以直接安装引入体验功能.功能在不断完善中,请及时更新使用,欢迎反馈与建议,共同成长
|
|
5
6
|
- 没有域名限制,无网可用. 随时提供帮助和解决问题.
|
|
6
7
|
- npm搜索vg-print.
|
|
7
|
-
|
|
8
|
+
```vue
|
|
9
|
+
```
|
|
10
|
+
- imageQuality联系我加 QQ: 984239686 或使用首页有微信加入群聊解决问题.
|
|
8
11
|
|
|
9
12
|
> **Vue 2 版本**: 如果你使用的是 Vue2+webpack4.0以上,请查看 [vg-print-vue2](https://www.npmjs.com/package/vg-print-vue2)
|
|
10
13
|
|
|
@@ -21,22 +24,18 @@
|
|
|
21
24
|
- 有授权(已注册有效 `authKey`):
|
|
22
25
|
- 面板未填写内容 → 不显示水印(默认水印被移除)
|
|
23
26
|
- 面板填写了内容 → 显示面板内容(无后缀)
|
|
24
|
-
|
|
25
27
|
- 注册授权密钥(密钥添加除水印):
|
|
26
28
|
在项目入口(如 `main.js` 或 `App.vue`)尽早注册:
|
|
27
|
-
|
|
28
29
|
```js
|
|
29
30
|
import { hiprint } from 'vg-print';
|
|
30
31
|
|
|
31
32
|
// 填入生成的 Key
|
|
32
33
|
hiprint.register({ authKey: 'eyJrIjoiZ21jNTc2MDMzNyJ9' });
|
|
33
34
|
```
|
|
34
|
-
|
|
35
35
|
注册后,以下所有使用方式均会自动生效(移除默认水印):
|
|
36
36
|
- 完整设计器组件 `FullDesigner`
|
|
37
37
|
- 核心类 `new hiprint.PrintTemplate(...)`
|
|
38
38
|
- 轻量运行时 helper `createTemplate(...)`
|
|
39
|
-
|
|
40
39
|
- 示例:轻量运行时使用授权
|
|
41
40
|
|
|
42
41
|
```js
|
|
@@ -87,8 +86,6 @@ hiprint.register({
|
|
|
87
86
|
{ content: 'vg-print', timestamp: true }
|
|
88
87
|
```
|
|
89
88
|
|
|
90
|
-
|
|
91
|
-
|
|
92
89
|
## 静默打印客户端工具安装包
|
|
93
90
|
|
|
94
91
|

|
|
@@ -103,7 +100,6 @@ hiprint.register({
|
|
|
103
100
|
- 暴露实例方法:预览、打印、导出、客户端生成pdf/图片等,外部可直接调用
|
|
104
101
|
- 集成并导出 `hiprint`,可进行模板对象级的高级定制
|
|
105
102
|
|
|
106
|
-
|
|
107
103
|
## 安装
|
|
108
104
|
|
|
109
105
|
```bash
|
|
@@ -147,11 +143,11 @@ npm i vg-print
|
|
|
147
143
|
|
|
148
144
|
### 如果发现外部调用安装过程页面样式有丢失情况, 可以引入打印样式重要提醒需要复制
|
|
149
145
|
|
|
150
|
-
【
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
146
|
+
【node\_modules/@vg-print/hiprint/dist/css/print-lock.css】到开发资源目录。
|
|
147
|
+
例如: Vue 项目的 public 目录。
|
|
148
|
+
假如你部署的网站是: <https://www.abcd.com/index.html>
|
|
149
|
+
那么确保 <https://www.abcd.com/print-lock.css>
|
|
150
|
+
能够正常访问在你项目的 index.html 入口 添加 print-lock.css 打印样式【名称 print-lock.css】注意: media="print"
|
|
155
151
|
可以调整成相对链接/自有链接,但【重要】名称需要一致(`print-lock.css`):
|
|
156
152
|
|
|
157
153
|
```html
|
|
@@ -244,7 +240,7 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
244
240
|
|
|
245
241
|
> 提示:如需完全自定义按钮,请提供 `headerRight` 插槽实现自己的按钮布局。
|
|
246
242
|
|
|
247
|
-
|
|
243
|
+
***
|
|
248
244
|
|
|
249
245
|
## Preview 预览组件
|
|
250
246
|
|
|
@@ -258,7 +254,7 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
258
254
|
- `printerList: Array<{ name: string; label: string }>` 打印机列表
|
|
259
255
|
- `selectedPrinter: string` 选中的打印机名称
|
|
260
256
|
- `dialogTitle: string` 弹窗标题,默认 `打印预览`
|
|
261
|
-
- `dialogTitleHtml: string` 弹窗标题 HTML 内容,默认 `''`(支持
|
|
257
|
+
- `dialogTitleHtml: string` 弹窗标题 HTML 内容,默认 `''`(支持 \`弹窗标题)
|
|
262
258
|
- `showTitle: boolean` 是否显示标题,默认 `true`
|
|
263
259
|
- `showPdf: boolean` 是否显示“导出 PDF”按钮,默认 `true`
|
|
264
260
|
- `showImg: boolean` 是否显示“导出图片”按钮,默认 `true`
|
|
@@ -273,12 +269,14 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
273
269
|
- `defaultLang: string` 组件内 i18n 语言(Standalone 时使用);支持 `cn`、`en`、`de`、`es`、`fr`、`it`、`ja`、`ru`、`cn_tw`;默认 `cn`
|
|
274
270
|
|
|
275
271
|
预览头部标题使用
|
|
272
|
+
|
|
276
273
|
- 传纯文本(原有方式):
|
|
277
274
|
- dialogTitle: '预览单据'
|
|
278
275
|
- 传带标签 HTML:
|
|
279
276
|
- dialogTitleHtml: '<span class="my-title"><i>订单</i>预览</span>'
|
|
280
277
|
- 用插槽完全自定义(推荐,样式控制最灵活):
|
|
281
|
-
-
|
|
278
|
+
- \<template #title="{ title, html }">...</template>
|
|
279
|
+
|
|
282
280
|
### 事件(Emits)
|
|
283
281
|
|
|
284
282
|
- `update:modalShow` 双向绑定弹窗显隐
|
|
@@ -294,8 +292,8 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
294
292
|
- `init()` 初始化(内部使用)
|
|
295
293
|
- `getTarget()` 获取当前 `hiprintTemplate` 实例
|
|
296
294
|
|
|
297
|
-
|
|
298
295
|
### show 方法高级参数(options)
|
|
296
|
+
|
|
299
297
|
- 始终回调 { type, message, payload }
|
|
300
298
|
- 但只有“异常/进度”场景才会带 message 或 payload
|
|
301
299
|
- 普通状态(如 show:start 、 render:done 、 image:done )没有额外信息,所以就是 undefined
|
|
@@ -472,7 +470,6 @@ const showCustomPreview = () => {
|
|
|
472
470
|
- `show(...)` 兼容原签名 `show(template, data, width?)`,建议新项目统一使用 `options` 写法,便于扩展和维护。
|
|
473
471
|
- 若在外部项目未安装插件(未执行 `app.use(vgPrint)`)而单独使用 `Preview`,请通过 `default-lang` 显式设置语言;安装插件时无需设置,语言默认随全局 i18n。
|
|
474
472
|
|
|
475
|
-
|
|
476
473
|
样式引入(确保设计与打印样式生效):
|
|
477
474
|
|
|
478
475
|
```js
|
|
@@ -601,6 +598,7 @@ const disableAutoConnect = () => designer.value.disAutoConnect()
|
|
|
601
598
|
```
|
|
602
599
|
|
|
603
600
|
自定义主题颜色字段说明(`theme.colors`):
|
|
601
|
+
|
|
604
602
|
- `accent: string` 主题强调色(影响:滚动条、选中态边框/高亮、部分 hover)
|
|
605
603
|
- `accentSoft: string` 强调色浅背景(可选,建议 `rgba`;用于选中态/hover 底色,默认由 `accent` 自动生成)
|
|
606
604
|
- `headerBg: string` Header/面板标题栏背景色(属性/结构/历史面板的标题栏也会使用)
|
|
@@ -640,7 +638,6 @@ const disableAutoConnect = () => designer.value.disAutoConnect()
|
|
|
640
638
|
- `toPdf2()` 导出 PDF;支持自定义参数,如缩放比例、页边距等(通过@zumer/snapdom库插件)
|
|
641
639
|
- `toImage()` 导出图片;使用内置 A4 排版示例参数导出
|
|
642
640
|
- `toImage2()` 导出图片;支持自定义参数,如缩放比例、页边距等(通过@zumer/snapdom库插件)
|
|
643
|
-
|
|
644
641
|
- `setHiwebSocket(host: string, token?: string, cb?: Function)` 设置客户端地址与令牌并尝试重连;`cb(status, msg)` 为连接回调
|
|
645
642
|
- `connect(cb?: Function)` 主动连接客户端;`cb(status, msg)` 为连接回调
|
|
646
643
|
- `disconnect()` 断开客户端连接
|
|
@@ -677,6 +674,7 @@ const onSave = ({ template, data, templateId }) => {
|
|
|
677
674
|
}
|
|
678
675
|
</script>
|
|
679
676
|
```
|
|
677
|
+
|
|
680
678
|
### 语言与国际化
|
|
681
679
|
|
|
682
680
|
- 通过 `default-lang` 设置初始语言(`cn` 默认为中文);内部会同步 `vue-i18n` 与 `hiprint` 的语言。
|
|
@@ -794,6 +792,11 @@ tpl.print({ name: '示例' }, {}, {
|
|
|
794
792
|
|
|
795
793
|
// 直接打印(需客户端已连接)
|
|
796
794
|
tpl.print2({ name: '示例' }, {
|
|
795
|
+
// 方式1 如果你发现传了 paperWidth/paperHeight 仍然偏移,再加上:forceClientPageSize: true 让客户端更强制按这个尺寸出纸
|
|
796
|
+
//paperWidth: 210,
|
|
797
|
+
//paperHeight: 279,
|
|
798
|
+
// 方式2
|
|
799
|
+
//forceClientPageSize: true, // 强制使用客户端页面大小,:偏“强制客户端按模板纸张尺寸打印,尽量压过驱动默认设置”(更激进)
|
|
797
800
|
printer: '', // 打印机名称
|
|
798
801
|
title: '打印预览pdf'
|
|
799
802
|
});
|
|
@@ -1052,7 +1055,15 @@ ippPrint(options, callback, connectedCallback);
|
|
|
1052
1055
|
ippRequest(options, callback);
|
|
1053
1056
|
|
|
1054
1057
|
// 使用模板对象直接发起直连打印
|
|
1055
|
-
tpl.print2(printData, {
|
|
1058
|
+
tpl.print2(printData, {
|
|
1059
|
+
// 方式1
|
|
1060
|
+
//forceClientPageSize: true, // 强制使用客户端页面大小,:偏“强制客户端按模板纸张尺寸打印,尽量压过驱动默认设置”(更激进)
|
|
1061
|
+
// 方式2 如果你发现传了 paperWidth/paperHeight 仍然偏移,再加上:forceClientPageSize: true 让客户端更强制按这个尺寸出纸
|
|
1062
|
+
//paperWidth: 210,
|
|
1063
|
+
//paperHeight: 279,
|
|
1064
|
+
printer: printers?.[0]?.name || '',
|
|
1065
|
+
title: '打印预览pdf'
|
|
1066
|
+
})
|
|
1056
1067
|
|
|
1057
1068
|
// 7) 客户端生成(返回客户端保存路径,便于上传到服务器)
|
|
1058
1069
|
const { pdfPath, imgPath } = await clientGenerate(tpl, printData, {
|
|
@@ -1132,7 +1143,7 @@ exportPdf2(tpl, printData, '打印预览pdf', {
|
|
|
1132
1143
|
- 默认导出与预览一致(通常“一个模板一页”)。
|
|
1133
1144
|
- `perPage` 在该模式下不生效(因为不做平铺排版)。
|
|
1134
1145
|
|
|
1135
|
-
|
|
1146
|
+
***
|
|
1136
1147
|
|
|
1137
1148
|
### 导出图片(toImage / exportImage)
|
|
1138
1149
|
|
|
@@ -1196,7 +1207,7 @@ await exportImage(tpl, printData, {
|
|
|
1196
1207
|
- `splitPages: false` 且 `limit > 0`:每 N 页合成长图。
|
|
1197
1208
|
- `splitPages: false` 且 `limit <= 0`:所有页合成一张超长图(不推荐)。
|
|
1198
1209
|
|
|
1199
|
-
|
|
1210
|
+
***
|
|
1200
1211
|
|
|
1201
1212
|
### 参数说明(PDF/图片通用,含描述)
|
|
1202
1213
|
|
|
@@ -1227,7 +1238,6 @@ await exportImage(tpl, printData, {
|
|
|
1227
1238
|
- 后台页面、弹窗、任务流:仅需“模板 + 数据”的预览/打印/导出能力
|
|
1228
1239
|
- 脚本或批量任务:结合 `exportPdf`/`exportImage` 实现批量导出
|
|
1229
1240
|
|
|
1230
|
-
|
|
1231
1241
|
## 注意事项
|
|
1232
1242
|
|
|
1233
1243
|
- 建议在 `index.html` 注入 `print-lock.css`,保证打印样式稳定
|
|
@@ -1310,3 +1320,4 @@ const onSave = ({ template, data, templateId }) => {
|
|
|
1310
1320
|
}
|
|
1311
1321
|
</script>
|
|
1312
1322
|
```
|
|
1323
|
+
|