@worm-vue3-print/core 1.3.5 → 1.3.7
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/LICENSE +1 -1
- package/dist/browser/index.cjs +36 -14
- package/dist/browser/index.d.cts +5 -5
- package/dist/browser/index.d.ts +5 -5
- package/dist/browser/index.js +9 -5
- package/dist/{chunk-ZCA33XA6.js → chunk-TCI5XQKI.js} +31 -13
- package/dist/{chunk-GHASCGL6.js → chunk-WLGEOVFK.js} +4 -4
- package/dist/client/index.cjs +3 -3
- package/dist/client/index.d.cts +3 -3
- package/dist/client/index.d.ts +3 -3
- package/dist/client/index.js +3 -3
- package/dist/designer/index.cjs +56 -4
- package/dist/designer/index.d.cts +45 -7
- package/dist/designer/index.d.ts +45 -7
- package/dist/designer/index.js +56 -6
- package/dist/dom-executor.iife.global.js +8 -8
- package/dist/{driver-CFm0C_yX.d.cts → driver-Dzr2Aikx.d.cts} +21 -6
- package/dist/{driver-CFm0C_yX.d.ts → driver-Dzr2Aikx.d.ts} +21 -6
- package/dist/index.cjs +31 -13
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +5 -5
- package/dist/node/index.cjs +3 -3
- package/dist/node/index.d.cts +4 -4
- package/dist/node/index.d.ts +4 -4
- package/dist/node/index.js +3 -3
- package/dist/{ports-BXYcHExa.d.cts → ports-B8MFq_Yo.d.ts} +4 -4
- package/dist/{ports-Bdst9MWJ.d.ts → ports-Bin4xmo0.d.cts} +4 -4
- package/package.json +2 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
/** 拼版配置(模板级,随模板保存) */
|
|
@@ -242,7 +242,7 @@ type TemplateElement$1 = PrintElementData;
|
|
|
242
242
|
/** 元素类型 */
|
|
243
243
|
type ElementType = 'text' | 'image' | 'longText' | 'table' | 'hline' | 'vline' | 'rect' | 'oval' | 'barcode' | 'qrcode' | 'html' | 'pageNumber';
|
|
244
244
|
/** 对齐方式 */
|
|
245
|
-
type TextAlign = 'left' | 'center' | 'right';
|
|
245
|
+
type TextAlign = 'left' | 'center' | 'right' | 'justify';
|
|
246
246
|
/**
|
|
247
247
|
* 文字超出可用空间时的显示形式(文本类元素与表格单元格共用):
|
|
248
248
|
* - `clip`:截断,超出部分不显示;不换行(`wordWrap=false`)时以省略号收尾
|
|
@@ -310,6 +310,7 @@ interface TableCell {
|
|
|
310
310
|
cellType?: TableCellType;
|
|
311
311
|
barcodeType?: string;
|
|
312
312
|
qrCodeLevel?: string;
|
|
313
|
+
qrQuietZone?: number;
|
|
313
314
|
showBarcodeText?: boolean;
|
|
314
315
|
/**
|
|
315
316
|
* 打印机分辨率(点/英寸,常见 203/300/600),仅 cellType='barcode' 时生效:
|
|
@@ -340,6 +341,7 @@ interface TableCell {
|
|
|
340
341
|
/** 自动缩小(textFit='shrink')的下限字号(pt);缺省 6pt */
|
|
341
342
|
shrinkMinFontSize?: number;
|
|
342
343
|
fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
|
|
344
|
+
objectPosition?: string;
|
|
343
345
|
maxWidth?: number;
|
|
344
346
|
maxHeight?: number;
|
|
345
347
|
}
|
|
@@ -421,9 +423,18 @@ interface ElementOptions {
|
|
|
421
423
|
*/
|
|
422
424
|
printerDpi?: number;
|
|
423
425
|
qrCodeLevel?: string;
|
|
426
|
+
/**
|
|
427
|
+
* 二维码静区(白边)宽度,单位「模块」:图形四周留出的空白格数,缺省 0。
|
|
428
|
+
* 0 表示不留白边,码面即整张图、等比铺满元素框——此时扫码所需的静区由元素框外的白纸充当;
|
|
429
|
+
* 要合规静区(ISO/IEC 18004 推荐 4 模块)请显式写 4。
|
|
430
|
+
* 值越大码面在框内占比越小(21 模块时:0→100%、2→84%、4→72.4%)。
|
|
431
|
+
*/
|
|
432
|
+
qrQuietZone?: number;
|
|
424
433
|
src?: string;
|
|
425
434
|
/** 内容缩放模式(image/qrcode):contain | cover | fill | none | scale-down。条形码不接受拉伸——尺寸已由结算确定 */
|
|
426
435
|
fit?: string;
|
|
436
|
+
/** 裁剪锚点(image):CSS object-position 值透传,如 'center 20%';含 ; 引号 url() 等非法字符则整条丢弃;缺省不输出,按 50% 50% 居中 */
|
|
437
|
+
objectPosition?: string;
|
|
427
438
|
/** 内容最大宽度(mm,image/barcode/qrcode);缺省不限制 */
|
|
428
439
|
maxWidth?: number;
|
|
429
440
|
/** 内容最大高度(mm,image/barcode/qrcode);缺省不限制 */
|
|
@@ -451,8 +462,6 @@ interface ElementOptions {
|
|
|
451
462
|
styler?: string;
|
|
452
463
|
rowStyler?: string;
|
|
453
464
|
longTextIndent?: number;
|
|
454
|
-
leftSpaceRemoved?: boolean;
|
|
455
|
-
lHeight?: number;
|
|
456
465
|
}
|
|
457
466
|
/** 元素类型元数据 */
|
|
458
467
|
interface PrintElementTypeMeta {
|
|
@@ -656,12 +665,16 @@ interface RenderCell {
|
|
|
656
665
|
barcodeType?: string;
|
|
657
666
|
/** 二维码纠错级别 L/M/Q/H,仅 cellType='qrcode' 时生效 */
|
|
658
667
|
qrCodeLevel?: string;
|
|
668
|
+
/** 二维码静区(白边)宽度(模块),仅 cellType='qrcode' 时生效;缺省 0 = 码面铺满单元格 */
|
|
669
|
+
qrQuietZone?: number;
|
|
659
670
|
/** 条形码下方是否显示文本,仅 cellType='barcode' 时生效 */
|
|
660
671
|
showBarcodeText?: boolean;
|
|
661
672
|
/** 打印机分辨率(点/英寸),仅 cellType='barcode' 时生效:给出后条码尺寸优先适配打印机点阵 */
|
|
662
673
|
printerDpi?: number;
|
|
663
674
|
/** 图片缩放模式,仅 cellType='image' 时生效 */
|
|
664
675
|
fit?: string;
|
|
676
|
+
/** 裁剪锚点(CSS object-position 值),仅 cellType=image 生效;含非法字符则整条不输出 */
|
|
677
|
+
objectPosition?: string;
|
|
665
678
|
/** 图片最大宽度(mm),仅 cellType='image' 时生效 */
|
|
666
679
|
maxWidth?: number;
|
|
667
680
|
/** 图片最大高度(mm),仅 cellType='image' 时生效 */
|
|
@@ -698,6 +711,8 @@ interface CodeRenderOptions {
|
|
|
698
711
|
barcodeType?: string;
|
|
699
712
|
/** 二维码纠错级别 L/M/Q/H,仅 qrcode 类型使用 */
|
|
700
713
|
qrCodeLevel?: string;
|
|
714
|
+
/** 二维码静区(白边)宽度,单位「模块」,仅 qrcode 类型使用;缺省 0 = 无白边,码面即整张图 */
|
|
715
|
+
qrQuietZone?: number;
|
|
701
716
|
/** 条形码下方是否显示文本 */
|
|
702
717
|
showText?: boolean;
|
|
703
718
|
/** 条码模块宽度倍率;决定每模块的首选物理宽度(倍率/2 × 0.25mm),给 dpi 后吸附到最近整数点 */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
/** 拼版配置(模板级,随模板保存) */
|
|
@@ -242,7 +242,7 @@ type TemplateElement$1 = PrintElementData;
|
|
|
242
242
|
/** 元素类型 */
|
|
243
243
|
type ElementType = 'text' | 'image' | 'longText' | 'table' | 'hline' | 'vline' | 'rect' | 'oval' | 'barcode' | 'qrcode' | 'html' | 'pageNumber';
|
|
244
244
|
/** 对齐方式 */
|
|
245
|
-
type TextAlign = 'left' | 'center' | 'right';
|
|
245
|
+
type TextAlign = 'left' | 'center' | 'right' | 'justify';
|
|
246
246
|
/**
|
|
247
247
|
* 文字超出可用空间时的显示形式(文本类元素与表格单元格共用):
|
|
248
248
|
* - `clip`:截断,超出部分不显示;不换行(`wordWrap=false`)时以省略号收尾
|
|
@@ -310,6 +310,7 @@ interface TableCell {
|
|
|
310
310
|
cellType?: TableCellType;
|
|
311
311
|
barcodeType?: string;
|
|
312
312
|
qrCodeLevel?: string;
|
|
313
|
+
qrQuietZone?: number;
|
|
313
314
|
showBarcodeText?: boolean;
|
|
314
315
|
/**
|
|
315
316
|
* 打印机分辨率(点/英寸,常见 203/300/600),仅 cellType='barcode' 时生效:
|
|
@@ -340,6 +341,7 @@ interface TableCell {
|
|
|
340
341
|
/** 自动缩小(textFit='shrink')的下限字号(pt);缺省 6pt */
|
|
341
342
|
shrinkMinFontSize?: number;
|
|
342
343
|
fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
|
|
344
|
+
objectPosition?: string;
|
|
343
345
|
maxWidth?: number;
|
|
344
346
|
maxHeight?: number;
|
|
345
347
|
}
|
|
@@ -421,9 +423,18 @@ interface ElementOptions {
|
|
|
421
423
|
*/
|
|
422
424
|
printerDpi?: number;
|
|
423
425
|
qrCodeLevel?: string;
|
|
426
|
+
/**
|
|
427
|
+
* 二维码静区(白边)宽度,单位「模块」:图形四周留出的空白格数,缺省 0。
|
|
428
|
+
* 0 表示不留白边,码面即整张图、等比铺满元素框——此时扫码所需的静区由元素框外的白纸充当;
|
|
429
|
+
* 要合规静区(ISO/IEC 18004 推荐 4 模块)请显式写 4。
|
|
430
|
+
* 值越大码面在框内占比越小(21 模块时:0→100%、2→84%、4→72.4%)。
|
|
431
|
+
*/
|
|
432
|
+
qrQuietZone?: number;
|
|
424
433
|
src?: string;
|
|
425
434
|
/** 内容缩放模式(image/qrcode):contain | cover | fill | none | scale-down。条形码不接受拉伸——尺寸已由结算确定 */
|
|
426
435
|
fit?: string;
|
|
436
|
+
/** 裁剪锚点(image):CSS object-position 值透传,如 'center 20%';含 ; 引号 url() 等非法字符则整条丢弃;缺省不输出,按 50% 50% 居中 */
|
|
437
|
+
objectPosition?: string;
|
|
427
438
|
/** 内容最大宽度(mm,image/barcode/qrcode);缺省不限制 */
|
|
428
439
|
maxWidth?: number;
|
|
429
440
|
/** 内容最大高度(mm,image/barcode/qrcode);缺省不限制 */
|
|
@@ -451,8 +462,6 @@ interface ElementOptions {
|
|
|
451
462
|
styler?: string;
|
|
452
463
|
rowStyler?: string;
|
|
453
464
|
longTextIndent?: number;
|
|
454
|
-
leftSpaceRemoved?: boolean;
|
|
455
|
-
lHeight?: number;
|
|
456
465
|
}
|
|
457
466
|
/** 元素类型元数据 */
|
|
458
467
|
interface PrintElementTypeMeta {
|
|
@@ -656,12 +665,16 @@ interface RenderCell {
|
|
|
656
665
|
barcodeType?: string;
|
|
657
666
|
/** 二维码纠错级别 L/M/Q/H,仅 cellType='qrcode' 时生效 */
|
|
658
667
|
qrCodeLevel?: string;
|
|
668
|
+
/** 二维码静区(白边)宽度(模块),仅 cellType='qrcode' 时生效;缺省 0 = 码面铺满单元格 */
|
|
669
|
+
qrQuietZone?: number;
|
|
659
670
|
/** 条形码下方是否显示文本,仅 cellType='barcode' 时生效 */
|
|
660
671
|
showBarcodeText?: boolean;
|
|
661
672
|
/** 打印机分辨率(点/英寸),仅 cellType='barcode' 时生效:给出后条码尺寸优先适配打印机点阵 */
|
|
662
673
|
printerDpi?: number;
|
|
663
674
|
/** 图片缩放模式,仅 cellType='image' 时生效 */
|
|
664
675
|
fit?: string;
|
|
676
|
+
/** 裁剪锚点(CSS object-position 值),仅 cellType=image 生效;含非法字符则整条不输出 */
|
|
677
|
+
objectPosition?: string;
|
|
665
678
|
/** 图片最大宽度(mm),仅 cellType='image' 时生效 */
|
|
666
679
|
maxWidth?: number;
|
|
667
680
|
/** 图片最大高度(mm),仅 cellType='image' 时生效 */
|
|
@@ -698,6 +711,8 @@ interface CodeRenderOptions {
|
|
|
698
711
|
barcodeType?: string;
|
|
699
712
|
/** 二维码纠错级别 L/M/Q/H,仅 qrcode 类型使用 */
|
|
700
713
|
qrCodeLevel?: string;
|
|
714
|
+
/** 二维码静区(白边)宽度,单位「模块」,仅 qrcode 类型使用;缺省 0 = 无白边,码面即整张图 */
|
|
715
|
+
qrQuietZone?: number;
|
|
701
716
|
/** 条形码下方是否显示文本 */
|
|
702
717
|
showText?: boolean;
|
|
703
718
|
/** 条码模块宽度倍率;决定每模块的首选物理宽度(倍率/2 × 0.25mm),给 dpi 后吸附到最近整数点 */
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
"use strict";
|
|
@@ -1189,9 +1189,11 @@ function makeRenderRow(row, resolve, keepRaw = false) {
|
|
|
1189
1189
|
cellType: cell.cellType,
|
|
1190
1190
|
barcodeType: cell.barcodeType,
|
|
1191
1191
|
qrCodeLevel: cell.qrCodeLevel,
|
|
1192
|
+
qrQuietZone: cell.qrQuietZone,
|
|
1192
1193
|
showBarcodeText: cell.showBarcodeText,
|
|
1193
1194
|
printerDpi: cell.printerDpi,
|
|
1194
1195
|
fit: cell.fit,
|
|
1196
|
+
objectPosition: cell.objectPosition,
|
|
1195
1197
|
maxWidth: cell.maxWidth,
|
|
1196
1198
|
maxHeight: cell.maxHeight,
|
|
1197
1199
|
rowspan: cell.rowspan ?? 1,
|
|
@@ -2537,12 +2539,26 @@ function textStyle(opts) {
|
|
|
2537
2539
|
if (opts.lineHeight) parts.push(`line-height:${opts.lineHeight}pt`);
|
|
2538
2540
|
if (opts.letterSpacing) parts.push(`letter-spacing:${opts.letterSpacing}pt`);
|
|
2539
2541
|
if (opts.verticalAlign) {
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
+
if (opts.textAlign === "justify") {
|
|
2543
|
+
parts.push(`display:flex;flex-direction:column;justify-content:${V_ALIGN_FLEX[opts.verticalAlign] ?? "flex-start"}`);
|
|
2544
|
+
} else {
|
|
2545
|
+
parts.push(`display:flex;align-items:${V_ALIGN_FLEX[opts.verticalAlign] ?? "flex-start"}`);
|
|
2546
|
+
parts.push(`justify-content:${H_ALIGN_FLEX[opts.textAlign ?? "left"] ?? "flex-start"}`);
|
|
2547
|
+
}
|
|
2542
2548
|
}
|
|
2543
2549
|
if (opts.textAlign) parts.push(`text-align:${opts.textAlign}`);
|
|
2550
|
+
if (opts.textAlign === "justify") parts.push("text-align-last:justify");
|
|
2544
2551
|
return parts.length ? parts.join(";") + ";" : "";
|
|
2545
2552
|
}
|
|
2553
|
+
function indentStyle(opts) {
|
|
2554
|
+
return opts.longTextIndent ? `text-indent:${opts.longTextIndent}em;` : "";
|
|
2555
|
+
}
|
|
2556
|
+
var OBJECT_POSITION_UNSAFE = /[;"'<>\\(){}\[\]@!#]/;
|
|
2557
|
+
function positionStyle(objectPosition) {
|
|
2558
|
+
const v = (objectPosition ?? "").trim();
|
|
2559
|
+
if (!v || v.length > 64 || OBJECT_POSITION_UNSAFE.test(v)) return "";
|
|
2560
|
+
return `object-position:${escapeInlineStyleValue(v)};`;
|
|
2561
|
+
}
|
|
2546
2562
|
function elementFitStyle(fit, opts) {
|
|
2547
2563
|
if (fit === "autoHeight") return "overflow:visible;";
|
|
2548
2564
|
if (opts.wordWrap === false) return "white-space:nowrap;text-overflow:ellipsis;";
|
|
@@ -2581,7 +2597,7 @@ function renderElement(el, isMeasure, containerStyle, overrideTop, ctx) {
|
|
|
2581
2597
|
return renderTableElement(el, isMeasure, measureAttr, ctx);
|
|
2582
2598
|
case "image":
|
|
2583
2599
|
return `<div class="print-element" style="${style}"${measureAttr}>
|
|
2584
|
-
<img src="${esc(opts.src ?? "")}" style="width:100%;height:100%;object-fit
|
|
2600
|
+
<img src="${esc(opts.src ?? "")}" style="width:100%;height:100%;object-fit:${opts.fit || "contain"};${positionStyle(opts.objectPosition)}" />
|
|
2585
2601
|
</div>`;
|
|
2586
2602
|
case "barcode":
|
|
2587
2603
|
case "qrcode": {
|
|
@@ -2608,7 +2624,7 @@ function renderElement(el, isMeasure, containerStyle, overrideTop, ctx) {
|
|
|
2608
2624
|
case "oval":
|
|
2609
2625
|
return `<div class="print-element" style="${style};border:${opts.borderWidth || 1}pt ${opts.borderStyle || "solid"} ${opts.borderColor || "#333"};border-radius:50%;"${measureAttr}></div>`;
|
|
2610
2626
|
case "longText":
|
|
2611
|
-
return `<div class="print-element" style="${style}${textStyle(opts)}${elementFitStyle(fit, opts)}"${measureAttr}${fitAttr}>${esc(opts.formatter ?? opts.testData ?? "")}</div>`;
|
|
2627
|
+
return `<div class="print-element" style="${style}${textStyle(opts)}${indentStyle(opts)}${elementFitStyle(fit, opts)}"${measureAttr}${fitAttr}>${esc(opts.formatter ?? opts.testData ?? "")}</div>`;
|
|
2612
2628
|
case "html":
|
|
2613
2629
|
return `<div class="print-element" style="${style}"${measureAttr}>${opts.testData ?? opts.title ?? ""}</div>`;
|
|
2614
2630
|
default:
|
|
@@ -2623,6 +2639,8 @@ function codeImgHtml(value, cellType, opts, io) {
|
|
|
2623
2639
|
const svg = codeRenderer.render(value, cellType, {
|
|
2624
2640
|
barcodeType: opts.barcodeType,
|
|
2625
2641
|
qrCodeLevel: opts.qrCodeLevel != null ? String(opts.qrCodeLevel) : void 0,
|
|
2642
|
+
// 0 是合法档(无白边),必须用 typeof 判定而非 or/?? 之类假值判断
|
|
2643
|
+
qrQuietZone: typeof opts.qrQuietZone === "number" ? opts.qrQuietZone : void 0,
|
|
2626
2644
|
showText: opts.hideTitle !== void 0 ? !opts.hideTitle : opts.showBarcodeText,
|
|
2627
2645
|
barWidth: typeof opts.barWidth === "number" ? opts.barWidth : void 0,
|
|
2628
2646
|
fontSize: typeof opts.fontSize === "number" ? opts.fontSize : void 0,
|
|
@@ -2633,10 +2651,8 @@ function codeImgHtml(value, cellType, opts, io) {
|
|
|
2633
2651
|
if (isBarcode && /^<svg[\s>]/i.test(svg)) return inlineCodeSvgHtml(svg);
|
|
2634
2652
|
const src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
2635
2653
|
const styleParts = [];
|
|
2636
|
-
styleParts.push("max-width:100%", "max-height:100%", "display:block", "margin:auto");
|
|
2637
|
-
|
|
2638
|
-
styleParts.push(`object-fit:${fit}`);
|
|
2639
|
-
}
|
|
2654
|
+
styleParts.push("width:100%", "height:100%", "max-width:100%", "max-height:100%", "display:block", "margin:auto");
|
|
2655
|
+
styleParts.push(`object-fit:${fit || "contain"}`);
|
|
2640
2656
|
if (maxWidth) {
|
|
2641
2657
|
styleParts.push(`max-width:${maxWidth}mm`);
|
|
2642
2658
|
}
|
|
@@ -2664,6 +2680,7 @@ function matrixCellStyle(cell, opts) {
|
|
|
2664
2680
|
if (color) parts.push(`color:${color}`);
|
|
2665
2681
|
if (cell.backgroundColor) parts.push(`background-color:${cell.backgroundColor}`);
|
|
2666
2682
|
parts.push(`text-align:${cell.align ?? "left"}`);
|
|
2683
|
+
if (cell.align === "justify") parts.push("text-align-last:justify");
|
|
2667
2684
|
parts.push(`vertical-align:${cell.valign ?? "middle"}`);
|
|
2668
2685
|
parts.push(`padding:${padding}mm`);
|
|
2669
2686
|
parts.push(cell.wordWrap === false ? "white-space:nowrap;overflow:hidden" : "word-break:break-all");
|
|
@@ -2703,7 +2720,7 @@ function renderMatrixRows(renderRows, start, end, opts, withRowIndex, ctx, fitOw
|
|
|
2703
2720
|
const fit = cell.fit || "contain";
|
|
2704
2721
|
const maxWidth = cell.maxWidth ? `max-width:${cell.maxWidth}mm;` : "max-width:100%;";
|
|
2705
2722
|
const maxHeight = cell.maxHeight ? `max-height:${cell.maxHeight}mm;` : "max-height:100%;";
|
|
2706
|
-
inner = `<div style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;"><img src="${esc(resolveCellContent(cell, ctx))}" style="object-fit:${fit};${maxWidth}${maxHeight}display:block;" /></div>`;
|
|
2723
|
+
inner = `<div style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;"><img src="${esc(resolveCellContent(cell, ctx))}" style="object-fit:${fit};${positionStyle(cell.objectPosition)}${maxWidth}${maxHeight}display:block;" /></div>`;
|
|
2707
2724
|
} else {
|
|
2708
2725
|
inner = renderTextCellInner(renderRows, r, colIndex, cell, opts, fitOwner, defaultPadding, ctx);
|
|
2709
2726
|
}
|
|
@@ -3046,7 +3063,8 @@ function codeSpecKey(value, cellType, opts = {}) {
|
|
|
3046
3063
|
opts.qrCodeLevel ?? null,
|
|
3047
3064
|
opts.showText ?? null,
|
|
3048
3065
|
opts.barWidth ?? null,
|
|
3049
|
-
opts.fontSize ?? null
|
|
3066
|
+
opts.fontSize ?? null,
|
|
3067
|
+
opts.qrQuietZone ?? null
|
|
3050
3068
|
]);
|
|
3051
3069
|
}
|
|
3052
3070
|
function createMapCodeRenderer(map) {
|
package/dist/index.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { T as TemplateData, C as CodeRenderer, P as PageLayout, J as MeasuredElement, K as TemplateElement, W as WatermarkOptions, L as PaperMm, N as ViewportPx, O as HeightSource, Q as MarginsMm, S as PdfTargetSpec, R as RawMeasurement, a as CodeSpec, X as CodeRenderOptions, D as DriverFactory, Y as ExecutorBundle, Z as TileLayout, _ as PrintJob, $ as PreparedDocument, a0 as RenderPdfResult, M as MultiPageTemplateData, a1 as PrintFontDeclaration } from './driver-
|
|
8
|
-
export { a2 as ContinuousPaperSize, a3 as EXECUTOR_TARGETS, a4 as ExecutorMethod, a5 as ExecutorTargetKind, a6 as FALLBACK_FONT_STACK, a7 as MAX_BATCH_COPIES, a8 as NormalizedPrintData, a9 as PAPER_DIMENSIONS, aa as PageDriver, ab as PageSection, ac as PaperSize, ad as PrintDataInput, ae as PrintFontFile, af as RenderCell, ag as RenderRequest, ah as RenderRow, ai as SheetPaperSize, aj as TILE_DEFAULTS, H as TextFit, ak as TilingError, al as TilingIssue, am as TilingIssueCode, an as TilingOptions, ao as TilingResolveOptions, ap as TilingTemplateInput, aq as buildFontFaceCss, ar as computeMaxColumns, as as computeTileLayout, at as escapeInlineStyleValue, au as getPaperDimensions, av as isContinuousPaper, aw as isContinuousPaperSize, ax as normalizePrintData, ay as normalizeTilingOptions, az as resolveSheetMm, aA as roundMm, aB as tilePosition, aC as toFontFamilyStack, aD as validateTiling } from './driver-
|
|
9
|
-
import { F as FitFontSize, P as PrintRuntime } from './ports-
|
|
10
|
-
export { C as CellFitRowKind, h as DEFAULT_READINESS_MS, D as DEFAULT_SHRINK_MIN_FONT_SIZE_PT, i as DEFAULT_TIMEOUT_MS, M as MIN_SHRINK_FONT_SIZE_PT, j as MeasureResult, k as PrintSession, S as SessionBudget, c as cellFitCapMm, a as cellFitKey, f as floorFontSize, p as parseCellFitKey, r as resolveCellTextFit, d as resolveElementTextFit, e as resolveShrinkMinFontSize, g as roundFontSize } from './ports-
|
|
7
|
+
import { T as TemplateData, C as CodeRenderer, P as PageLayout, J as MeasuredElement, K as TemplateElement, W as WatermarkOptions, L as PaperMm, N as ViewportPx, O as HeightSource, Q as MarginsMm, S as PdfTargetSpec, R as RawMeasurement, a as CodeSpec, X as CodeRenderOptions, D as DriverFactory, Y as ExecutorBundle, Z as TileLayout, _ as PrintJob, $ as PreparedDocument, a0 as RenderPdfResult, M as MultiPageTemplateData, a1 as PrintFontDeclaration } from './driver-Dzr2Aikx.cjs';
|
|
8
|
+
export { a2 as ContinuousPaperSize, a3 as EXECUTOR_TARGETS, a4 as ExecutorMethod, a5 as ExecutorTargetKind, a6 as FALLBACK_FONT_STACK, a7 as MAX_BATCH_COPIES, a8 as NormalizedPrintData, a9 as PAPER_DIMENSIONS, aa as PageDriver, ab as PageSection, ac as PaperSize, ad as PrintDataInput, ae as PrintFontFile, af as RenderCell, ag as RenderRequest, ah as RenderRow, ai as SheetPaperSize, aj as TILE_DEFAULTS, H as TextFit, ak as TilingError, al as TilingIssue, am as TilingIssueCode, an as TilingOptions, ao as TilingResolveOptions, ap as TilingTemplateInput, aq as buildFontFaceCss, ar as computeMaxColumns, as as computeTileLayout, at as escapeInlineStyleValue, au as getPaperDimensions, av as isContinuousPaper, aw as isContinuousPaperSize, ax as normalizePrintData, ay as normalizeTilingOptions, az as resolveSheetMm, aA as roundMm, aB as tilePosition, aC as toFontFamilyStack, aD as validateTiling } from './driver-Dzr2Aikx.cjs';
|
|
9
|
+
import { F as FitFontSize, P as PrintRuntime } from './ports-Bin4xmo0.cjs';
|
|
10
|
+
export { C as CellFitRowKind, h as DEFAULT_READINESS_MS, D as DEFAULT_SHRINK_MIN_FONT_SIZE_PT, i as DEFAULT_TIMEOUT_MS, M as MIN_SHRINK_FONT_SIZE_PT, j as MeasureResult, k as PrintSession, S as SessionBudget, c as cellFitCapMm, a as cellFitKey, f as floorFontSize, p as parseCellFitKey, r as resolveCellTextFit, d as resolveElementTextFit, e as resolveShrinkMinFontSize, g as roundFontSize } from './ports-Bin4xmo0.cjs';
|
|
11
11
|
|
|
12
12
|
type TokenType = 'num' | 'str' | 'bool' | 'ident' | 'punc';
|
|
13
13
|
interface Token {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { T as TemplateData, C as CodeRenderer, P as PageLayout, J as MeasuredElement, K as TemplateElement, W as WatermarkOptions, L as PaperMm, N as ViewportPx, O as HeightSource, Q as MarginsMm, S as PdfTargetSpec, R as RawMeasurement, a as CodeSpec, X as CodeRenderOptions, D as DriverFactory, Y as ExecutorBundle, Z as TileLayout, _ as PrintJob, $ as PreparedDocument, a0 as RenderPdfResult, M as MultiPageTemplateData, a1 as PrintFontDeclaration } from './driver-
|
|
8
|
-
export { a2 as ContinuousPaperSize, a3 as EXECUTOR_TARGETS, a4 as ExecutorMethod, a5 as ExecutorTargetKind, a6 as FALLBACK_FONT_STACK, a7 as MAX_BATCH_COPIES, a8 as NormalizedPrintData, a9 as PAPER_DIMENSIONS, aa as PageDriver, ab as PageSection, ac as PaperSize, ad as PrintDataInput, ae as PrintFontFile, af as RenderCell, ag as RenderRequest, ah as RenderRow, ai as SheetPaperSize, aj as TILE_DEFAULTS, H as TextFit, ak as TilingError, al as TilingIssue, am as TilingIssueCode, an as TilingOptions, ao as TilingResolveOptions, ap as TilingTemplateInput, aq as buildFontFaceCss, ar as computeMaxColumns, as as computeTileLayout, at as escapeInlineStyleValue, au as getPaperDimensions, av as isContinuousPaper, aw as isContinuousPaperSize, ax as normalizePrintData, ay as normalizeTilingOptions, az as resolveSheetMm, aA as roundMm, aB as tilePosition, aC as toFontFamilyStack, aD as validateTiling } from './driver-
|
|
9
|
-
import { F as FitFontSize, P as PrintRuntime } from './ports-
|
|
10
|
-
export { C as CellFitRowKind, h as DEFAULT_READINESS_MS, D as DEFAULT_SHRINK_MIN_FONT_SIZE_PT, i as DEFAULT_TIMEOUT_MS, M as MIN_SHRINK_FONT_SIZE_PT, j as MeasureResult, k as PrintSession, S as SessionBudget, c as cellFitCapMm, a as cellFitKey, f as floorFontSize, p as parseCellFitKey, r as resolveCellTextFit, d as resolveElementTextFit, e as resolveShrinkMinFontSize, g as roundFontSize } from './ports-
|
|
7
|
+
import { T as TemplateData, C as CodeRenderer, P as PageLayout, J as MeasuredElement, K as TemplateElement, W as WatermarkOptions, L as PaperMm, N as ViewportPx, O as HeightSource, Q as MarginsMm, S as PdfTargetSpec, R as RawMeasurement, a as CodeSpec, X as CodeRenderOptions, D as DriverFactory, Y as ExecutorBundle, Z as TileLayout, _ as PrintJob, $ as PreparedDocument, a0 as RenderPdfResult, M as MultiPageTemplateData, a1 as PrintFontDeclaration } from './driver-Dzr2Aikx.js';
|
|
8
|
+
export { a2 as ContinuousPaperSize, a3 as EXECUTOR_TARGETS, a4 as ExecutorMethod, a5 as ExecutorTargetKind, a6 as FALLBACK_FONT_STACK, a7 as MAX_BATCH_COPIES, a8 as NormalizedPrintData, a9 as PAPER_DIMENSIONS, aa as PageDriver, ab as PageSection, ac as PaperSize, ad as PrintDataInput, ae as PrintFontFile, af as RenderCell, ag as RenderRequest, ah as RenderRow, ai as SheetPaperSize, aj as TILE_DEFAULTS, H as TextFit, ak as TilingError, al as TilingIssue, am as TilingIssueCode, an as TilingOptions, ao as TilingResolveOptions, ap as TilingTemplateInput, aq as buildFontFaceCss, ar as computeMaxColumns, as as computeTileLayout, at as escapeInlineStyleValue, au as getPaperDimensions, av as isContinuousPaper, aw as isContinuousPaperSize, ax as normalizePrintData, ay as normalizeTilingOptions, az as resolveSheetMm, aA as roundMm, aB as tilePosition, aC as toFontFamilyStack, aD as validateTiling } from './driver-Dzr2Aikx.js';
|
|
9
|
+
import { F as FitFontSize, P as PrintRuntime } from './ports-B8MFq_Yo.js';
|
|
10
|
+
export { C as CellFitRowKind, h as DEFAULT_READINESS_MS, D as DEFAULT_SHRINK_MIN_FONT_SIZE_PT, i as DEFAULT_TIMEOUT_MS, M as MIN_SHRINK_FONT_SIZE_PT, j as MeasureResult, k as PrintSession, S as SessionBudget, c as cellFitCapMm, a as cellFitKey, f as floorFontSize, p as parseCellFitKey, r as resolveCellTextFit, d as resolveElementTextFit, e as resolveShrinkMinFontSize, g as roundFontSize } from './ports-B8MFq_Yo.js';
|
|
11
11
|
|
|
12
12
|
type TokenType = 'num' | 'str' | 'bool' | 'ident' | 'punc';
|
|
13
13
|
interface Token {
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
import {
|
|
8
8
|
TemplateEngine
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WLGEOVFK.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_READINESS_MS,
|
|
12
12
|
DEFAULT_SHRINK_MIN_FONT_SIZE_PT,
|
|
@@ -125,7 +125,7 @@ import {
|
|
|
125
125
|
tokenize,
|
|
126
126
|
validateTiling,
|
|
127
127
|
withTimeout
|
|
128
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-TCI5XQKI.js";
|
|
129
129
|
export {
|
|
130
130
|
DEFAULT_READINESS_MS,
|
|
131
131
|
DEFAULT_SHRINK_MIN_FONT_SIZE_PT,
|
package/dist/node/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
"use strict";
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { Y as ExecutorBundle } from '../driver-
|
|
7
|
+
import { Y as ExecutorBundle } from '../driver-Dzr2Aikx.cjs';
|
|
8
8
|
|
|
9
9
|
/** 读取 core 自带的 DOM 执行器 IIFE 产物;宿主把它注入页面后即可调用 __wormDom */
|
|
10
10
|
declare function loadExecutorBundle(): ExecutorBundle;
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { Y as ExecutorBundle } from '../driver-
|
|
7
|
+
import { Y as ExecutorBundle } from '../driver-Dzr2Aikx.js';
|
|
8
8
|
|
|
9
9
|
/** 读取 core 自带的 DOM 执行器 IIFE 产物;宿主把它注入页面后即可调用 __wormDom */
|
|
10
10
|
declare function loadExecutorBundle(): ExecutorBundle;
|
package/dist/node/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { H as TextFit, a as CodeSpec, N as ViewportPx, R as RawMeasurement, S as PdfTargetSpec } from './driver-
|
|
7
|
+
import { H as TextFit, a as CodeSpec, N as ViewportPx, R as RawMeasurement, S as PdfTargetSpec } from './driver-Dzr2Aikx.js';
|
|
8
8
|
|
|
9
9
|
/** 自动缩小的默认下限字号(pt) */
|
|
10
10
|
declare const DEFAULT_SHRINK_MIN_FONT_SIZE_PT = 6;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @worm-vue3-print/core v1.3.
|
|
3
|
-
* Copyright (c) 2026
|
|
4
|
-
* SPDX-FileCopyrightText: 2026
|
|
2
|
+
* @worm-vue3-print/core v1.3.7
|
|
3
|
+
* Copyright (c) 2026 worm <liu_long_qqcom@qq.com>
|
|
4
|
+
* SPDX-FileCopyrightText: 2026 worm <liu_long_qqcom@qq.com>
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
|
-
import { H as TextFit, a as CodeSpec, N as ViewportPx, R as RawMeasurement, S as PdfTargetSpec } from './driver-
|
|
7
|
+
import { H as TextFit, a as CodeSpec, N as ViewportPx, R as RawMeasurement, S as PdfTargetSpec } from './driver-Dzr2Aikx.cjs';
|
|
8
8
|
|
|
9
9
|
/** 自动缩小的默认下限字号(pt) */
|
|
10
10
|
declare const DEFAULT_SHRINK_MIN_FONT_SIZE_PT = 6;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@worm-vue3-print/core",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "打印模板表达式引擎、同构渲染管线与框架无关的设计器内核(HTML 生成/分页/数据绑定/设计器模型与工具),无 Vue/React 依赖",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -38,9 +38,7 @@
|
|
|
38
38
|
"dist"
|
|
39
39
|
],
|
|
40
40
|
"license": "MIT",
|
|
41
|
-
"author":
|
|
42
|
-
"name": "Worm Base AI"
|
|
43
|
-
},
|
|
41
|
+
"author": "worm <liu_long_qqcom@qq.com>",
|
|
44
42
|
"repository": {
|
|
45
43
|
"type": "git",
|
|
46
44
|
"url": "git+https://gitee.com/liulong_oschina/worm-vue3-print.git"
|