vg-print 1.1.205 → 1.1.206
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.en.md +2 -1
- package/README.md +79 -6
- package/dist/{chunk-MW6X4KTL-BcL0iwUt.js → chunk-MW6X4KTL-BurJNu__.js} +1 -1
- package/dist/{chunk-Q2Z2CG2I-WPpWTILY.js → chunk-Q2Z2CG2I-DIpEr7Vr.js} +1 -1
- package/dist/{chunk-Y7FY32AO-CKFAwivO.js → chunk-Y7FY32AO-D-QjiXpF.js} +1 -1
- package/dist/{download-ubFsGJHN.js → download-DIzP9T6w.js} +2 -2
- package/dist/{index-DIcTZZ1w.js → index-G_Vz9uGK.js} +16392 -16581
- package/dist/rasterize-34PCWURX-DGuDUKqC.js +4 -0
- package/dist/style.css +1 -1
- package/dist/toBlob-CWz9f_Si.js +4 -0
- package/dist/toCanvas-CPMpnxd1.js +4 -0
- package/dist/{toImg-CuG9jaPa.js → toImg-BlXdFIBS.js} +2 -2
- package/dist/vg-print.es.js +1 -1
- package/package.json +1 -1
- package/dist/rasterize-34PCWURX-C6poM81m.js +0 -4
- package/dist/toBlob-osoHagiQ.js +0 -4
- package/dist/toCanvas-XGjd0EDo.js +0 -4
package/README.en.md
CHANGED
|
@@ -181,6 +181,7 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
181
181
|
- `showPdf: boolean` Show "Export PDF" button, default `true`
|
|
182
182
|
- `showImg: boolean` Show "Export Image" button, default `true`
|
|
183
183
|
- `showPrint2: boolean` Show "Direct Print" button, default `true`
|
|
184
|
+
- `showPrinterSelect: boolean` Show printer selector area, default `true`
|
|
184
185
|
- `modalShow: boolean` Modal visibility (supports `v-model:modalShow`)
|
|
185
186
|
- `width: string | number` Modal width (default `'80%'`)
|
|
186
187
|
- `defaultLang: string` Component i18n language (used when Standalone); supports `cn`, `en`, `de`, `es`, `fr`, `it`, `ja`, `ru`, `cn_tw`; default `cn`
|
|
@@ -494,4 +495,4 @@ await exportImage(tpl, printData, {
|
|
|
494
495
|
|
|
495
496
|
## Full Example
|
|
496
497
|
|
|
497
|
-
(See the code block in the Chinese section or above)
|
|
498
|
+
(See the code block in the Chinese section or above)
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# vg-print
|
|
2
2
|
|
|
3
|
-
[开源免费]一个开箱即用的打印设计器组件库(Vue 3)。现在聚焦于单一组件 `FullDesigner`,同时暴露底层 `hiprint` 能力与客户端直连(`hiwebSocket`)配置,便于快速集成模板设计、预览、浏览器打印、导出 PDF
|
|
3
|
+
[开源免费]一个开箱即用的打印设计器组件库(Vue 3)。现在聚焦于单一组件 `FullDesigner`,同时暴露底层 `hiprint` 能力与客户端直连(`hiwebSocket`)配置,便于快速集成模板设计、预览、浏览器打印、导出 PDF/图片、直接打印、客户端生成pdf/图片、数据源管理、多语言支持等功能。
|
|
4
4
|
- 您可以直接安装引入体验功能.功能在不断完善中,请及时更新使用,欢迎反馈与建议,共同成长
|
|
5
5
|
- 没有域名限制,无网可用. 随时提供帮助和解决问题.
|
|
6
6
|
- npm搜索vg-print.
|
|
7
7
|
- 联系我加 QQ: 984239686 或使用首页有微信加入群聊解决问题.
|
|
8
8
|
|
|
9
|
-
> **Vue 2 版本**: 如果你使用的是
|
|
9
|
+
> **Vue 2 版本**: 如果你使用的是 Vue2+webpack4.0以上,请查看 [vg-print-vue2](https://www.npmjs.com/package/vg-print-vue2)
|
|
10
10
|
|
|
11
11
|
[vg-print开发者文档](https://www.yuque.com/designdev/vg-print)
|
|
12
12
|
|
|
@@ -100,7 +100,7 @@ hiprint.register({
|
|
|
100
100
|
- 全功能页面组件 `FullDesigner`,直接使用,无需拼装子组件
|
|
101
101
|
- 支持预览、浏览器打印、导出 PDF/图片、直接打印(需客户端)
|
|
102
102
|
- 通过属性配置 `hiwebSocket` 的 `host`、`token` 与自动连接
|
|
103
|
-
-
|
|
103
|
+
- 暴露实例方法:预览、打印、导出、客户端生成pdf/图片等,外部可直接调用
|
|
104
104
|
- 集成并导出 `hiprint`,可进行模板对象级的高级定制
|
|
105
105
|
|
|
106
106
|
|
|
@@ -260,6 +260,7 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
260
260
|
- `showPdf: boolean` 是否显示“导出 PDF”按钮,默认 `true`
|
|
261
261
|
- `showImg: boolean` 是否显示“导出图片”按钮,默认 `true`
|
|
262
262
|
- `showPrint2: boolean` 是否显示“直接打印”按钮,默认 `true`
|
|
263
|
+
- `showPrinterSelect: boolean` 是否显示“打印机选择”下拉区域,默认 `true`
|
|
263
264
|
- `modalShow: boolean` 弹窗显隐(支持 `v-model:modalShow`)
|
|
264
265
|
- `width: string | number` 弹窗宽度(默认 `'80%'`)
|
|
265
266
|
- `defaultLang: string` 组件内 i18n 语言(Standalone 时使用);支持 `cn`、`en`、`de`、`es`、`fr`、`it`、`ja`、`ru`、`cn_tw`;默认 `cn`
|
|
@@ -272,10 +273,41 @@ const onSaveDirect = () => designer.value?.save()
|
|
|
272
273
|
|
|
273
274
|
### 暴露方法(defineExpose)
|
|
274
275
|
|
|
275
|
-
- `show(template, data, width?)`
|
|
276
|
+
- `show(template, data, width?)` 显示并渲染预览内容(兼容旧调用)
|
|
277
|
+
- `show(template, data, options?)` 显示并渲染预览内容(推荐)
|
|
278
|
+
- `show(template, data, width, options?)` 同时传入宽度与高级回调参数
|
|
276
279
|
- `hideModal()` 关闭弹窗
|
|
277
280
|
- `init()` 初始化(内部使用)
|
|
278
|
-
- `getTarget()`
|
|
281
|
+
- `getTarget()` 获取当前 `hiprintTemplate` 实例
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
### show 方法高级参数(options)
|
|
285
|
+
- 始终回调 { type, message, payload }
|
|
286
|
+
- 但只有“异常/进度”场景才会带 message 或 payload
|
|
287
|
+
- 普通状态(如 show:start 、 render:done 、 image:done )没有额外信息,所以就是 undefined
|
|
288
|
+
|
|
289
|
+
```ts
|
|
290
|
+
type PreviewShowOptions = {
|
|
291
|
+
width?: string | number
|
|
292
|
+
onClick?: (type: 'pdf' | 'img' | 'print' | 'print2' | 'close') => void
|
|
293
|
+
onClose?: () => void
|
|
294
|
+
onRender?: () => void
|
|
295
|
+
callBackOptions?: {
|
|
296
|
+
statusCallback?: (status: {
|
|
297
|
+
type:
|
|
298
|
+
| 'show:start' | 'show:ready'
|
|
299
|
+
| 'render:start' | 'render:done' | 'render:error'
|
|
300
|
+
| 'pdf:start' | 'pdf:progress' | 'pdf:done' | 'pdf:error'
|
|
301
|
+
| 'image:start' | 'image:progress' | 'image:done' | 'image:error'
|
|
302
|
+
| 'print:start' | 'print:done' | 'print:error'
|
|
303
|
+
| 'directPrint:start' | 'directPrint:progress' | 'directPrint:done' | 'directPrint:error'
|
|
304
|
+
| 'close'
|
|
305
|
+
message?: string
|
|
306
|
+
payload?: any
|
|
307
|
+
}) => void
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
```
|
|
279
311
|
|
|
280
312
|
### 使用示例(单独使用)
|
|
281
313
|
|
|
@@ -305,9 +337,49 @@ const printer = ref('')
|
|
|
305
337
|
const tmplJson = { panels: [ /* ... */ ] }
|
|
306
338
|
const data = { title: '病理图文报告', name: '东东' }
|
|
307
339
|
|
|
340
|
+
// show(template, data, width?)
|
|
341
|
+
// 参数说明:
|
|
342
|
+
// 1) template: createTemplate(...) 返回的模板实例(或 hiprint.PrintTemplate)
|
|
343
|
+
// 2) data: 打印数据(对象或数组)
|
|
344
|
+
// 3) width: 弹窗宽度;支持百分比字符串(如 '80%')或数字(如 980,单位 px)
|
|
308
345
|
const openPreview = () => {
|
|
309
346
|
const tpl = createTemplate(tmplJson) // 也可传入 hiprint.PrintTemplate
|
|
310
|
-
|
|
347
|
+
// vue2方式:
|
|
348
|
+
previewRef.value?.show(tpl, data, '80%')
|
|
349
|
+
// 或
|
|
350
|
+
previewRef.value?.show(tpl, data)
|
|
351
|
+
// 或
|
|
352
|
+
previewRef.value?.show(tpl, data, {
|
|
353
|
+
width: '80%',
|
|
354
|
+
onClick: (type) => {
|
|
355
|
+
// 示例:点击导出 PDF 按钮
|
|
356
|
+
if (type === 'pdf') {
|
|
357
|
+
console.log('[Preview onClick] 导出 PDF')
|
|
358
|
+
return
|
|
359
|
+
}
|
|
360
|
+
console.log('[Preview onClick]', type)
|
|
361
|
+
},
|
|
362
|
+
onClose: () => {
|
|
363
|
+
// 示例:弹窗关闭
|
|
364
|
+
console.log('[Preview onClose] 弹窗已关闭')
|
|
365
|
+
},
|
|
366
|
+
onRender: () => {
|
|
367
|
+
// 示例:预览内容渲染完成
|
|
368
|
+
console.log('[Preview onRender] 预览内容渲染完成')
|
|
369
|
+
},
|
|
370
|
+
callBackOptions: {
|
|
371
|
+
statusCallback: (status) => {
|
|
372
|
+
// 示例:导出进度(PDF/图片)
|
|
373
|
+
if (status.type === 'pdf:progress' || status.type === 'image:progress') {
|
|
374
|
+
const cur = status?.payload?.cur ?? 0
|
|
375
|
+
const total = status?.payload?.total ?? 0
|
|
376
|
+
console.log('[Preview progress]', cur, total)
|
|
377
|
+
return
|
|
378
|
+
}
|
|
379
|
+
console.log('[Preview status]', status.type, status.message || '')
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
})
|
|
311
383
|
}
|
|
312
384
|
</script>
|
|
313
385
|
```
|
|
@@ -340,6 +412,7 @@ const showCustomPreview = () => {
|
|
|
340
412
|
|
|
341
413
|
- 使用组件库时请引入 `vg-print/style.css`,其中包含自定义图标字体与预览/设计样式。
|
|
342
414
|
- `Preview` 内部会根据 `printTemplate` 与 `printData` 自动渲染内容;也支持通过 `show(...)` 主动传入。
|
|
415
|
+
- `show(...)` 兼容原签名 `show(template, data, width?)`,建议新项目统一使用 `options` 写法,便于扩展和维护。
|
|
343
416
|
- 若在外部项目未安装插件(未执行 `app.use(vgPrint)`)而单独使用 `Preview`,请通过 `default-lang` 显式设置语言;安装插件时无需设置,语言默认随全局 i18n。
|
|
344
417
|
|
|
345
418
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { W as a } from "./chunk-MW6X4KTL-
|
|
1
|
+
import { W as a } from "./chunk-MW6X4KTL-BurJNu__.js";
|
|
2
2
|
async function o(r, t) {
|
|
3
3
|
let i = await a(r, t), e = new Image();
|
|
4
4
|
return e.src = i.toDataURL(`image/${t.format}`, t.quality), await e.decode(), e.style.width = `${i.width / t.dpr}px`, e.style.height = `${i.height / t.dpr}px`, e;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { m as f } from "./chunk-Y7FY32AO-
|
|
2
|
-
import { W as t } from "./chunk-MW6X4KTL-
|
|
1
|
+
import { m as f } from "./chunk-Y7FY32AO-D-QjiXpF.js";
|
|
2
|
+
import { W as t } from "./chunk-MW6X4KTL-BurJNu__.js";
|
|
3
3
|
async function w(n, e) {
|
|
4
4
|
let c = ((e == null ? void 0 : e.format) || (e == null ? void 0 : e.type) || "").toLowerCase(), a = c === "jpg" ? "jpeg" : c || "png", i = (e == null ? void 0 : e.filename) || `snapdom.${a}`, o = { ...e || {}, format: a, type: a };
|
|
5
5
|
if (o.dpr = 1, a === "svg") {
|