@pdfme/schemas 4.0.0-alpha.0 → 4.0.0-dev.3
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 +1 -0
- package/dist/cjs/__tests__/text.test.js +10 -4
- package/dist/cjs/__tests__/text.test.js.map +1 -1
- package/dist/cjs/src/barcodes/propPanel.js +12 -0
- package/dist/cjs/src/barcodes/propPanel.js.map +1 -1
- package/dist/cjs/src/graphics/cacheKey.js +6 -0
- package/dist/cjs/src/graphics/cacheKey.js.map +1 -0
- package/dist/cjs/src/graphics/image.js +26 -15
- package/dist/cjs/src/graphics/image.js.map +1 -1
- package/dist/{esm/src/graphics/helper.js → cjs/src/graphics/imagehelper.js} +15 -2
- package/dist/cjs/src/graphics/imagehelper.js.map +1 -0
- package/dist/cjs/src/graphics/pdfHelper.js +49 -0
- package/dist/cjs/src/graphics/pdfHelper.js.map +1 -0
- package/dist/cjs/src/graphics/svg.js +2 -0
- package/dist/cjs/src/graphics/svg.js.map +1 -1
- package/dist/cjs/src/index.js +3 -2
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/shapes/line.js +4 -2
- package/dist/cjs/src/shapes/line.js.map +1 -1
- package/dist/cjs/src/shapes/rectAndEllipse.js +13 -6
- package/dist/cjs/src/shapes/rectAndEllipse.js.map +1 -1
- package/dist/cjs/src/tables/pdfRender.js +0 -2
- package/dist/cjs/src/tables/pdfRender.js.map +1 -1
- package/dist/cjs/src/tables/propPanel.js +1 -0
- package/dist/cjs/src/tables/propPanel.js.map +1 -1
- package/dist/cjs/src/tables/uiRender.js +44 -23
- package/dist/cjs/src/tables/uiRender.js.map +1 -1
- package/dist/cjs/src/text/helper.js +27 -7
- package/dist/cjs/src/text/helper.js.map +1 -1
- package/dist/cjs/src/text/index.js +1 -0
- package/dist/cjs/src/text/index.js.map +1 -1
- package/dist/cjs/src/text/pdfRender.js +4 -4
- package/dist/cjs/src/text/pdfRender.js.map +1 -1
- package/dist/cjs/src/text/propPanel.js +1 -0
- package/dist/cjs/src/text/propPanel.js.map +1 -1
- package/dist/cjs/src/text/uiRender.js +22 -1
- package/dist/cjs/src/text/uiRender.js.map +1 -1
- package/dist/cjs/src/utils.js +37 -7
- package/dist/cjs/src/utils.js.map +1 -1
- package/dist/esm/__tests__/text.test.js +10 -4
- package/dist/esm/__tests__/text.test.js.map +1 -1
- package/dist/esm/src/barcodes/propPanel.js +12 -0
- package/dist/esm/src/barcodes/propPanel.js.map +1 -1
- package/dist/esm/src/graphics/cacheKey.js +2 -0
- package/dist/esm/src/graphics/cacheKey.js.map +1 -0
- package/dist/esm/src/graphics/image.js +25 -14
- package/dist/esm/src/graphics/image.js.map +1 -1
- package/dist/{cjs/src/graphics/helper.js → esm/src/graphics/imagehelper.js} +10 -5
- package/dist/esm/src/graphics/imagehelper.js.map +1 -0
- package/dist/esm/src/graphics/pdfHelper.js +44 -0
- package/dist/esm/src/graphics/pdfHelper.js.map +1 -0
- package/dist/esm/src/graphics/svg.js +2 -0
- package/dist/esm/src/graphics/svg.js.map +1 -1
- package/dist/esm/src/index.js +2 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/shapes/line.js +5 -3
- package/dist/esm/src/shapes/line.js.map +1 -1
- package/dist/esm/src/shapes/rectAndEllipse.js +14 -7
- package/dist/esm/src/shapes/rectAndEllipse.js.map +1 -1
- package/dist/esm/src/tables/pdfRender.js +0 -2
- package/dist/esm/src/tables/pdfRender.js.map +1 -1
- package/dist/esm/src/tables/propPanel.js +1 -0
- package/dist/esm/src/tables/propPanel.js.map +1 -1
- package/dist/esm/src/tables/uiRender.js +39 -18
- package/dist/esm/src/tables/uiRender.js.map +1 -1
- package/dist/esm/src/text/helper.js +25 -6
- package/dist/esm/src/text/helper.js.map +1 -1
- package/dist/esm/src/text/index.js +1 -0
- package/dist/esm/src/text/index.js.map +1 -1
- package/dist/esm/src/text/pdfRender.js +6 -6
- package/dist/esm/src/text/pdfRender.js.map +1 -1
- package/dist/esm/src/text/propPanel.js +1 -0
- package/dist/esm/src/text/propPanel.js.map +1 -1
- package/dist/esm/src/text/uiRender.js +23 -2
- package/dist/esm/src/text/uiRender.js.map +1 -1
- package/dist/esm/src/utils.js +35 -6
- package/dist/esm/src/utils.js.map +1 -1
- package/dist/types/src/graphics/cacheKey.d.ts +2 -0
- package/dist/types/src/graphics/image.d.ts +1 -1
- package/dist/types/src/graphics/imagehelper.d.ts +4 -0
- package/dist/types/src/graphics/pdfHelper.d.ts +8 -0
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/shapes/rectAndEllipse.d.ts +6 -0
- package/dist/types/src/text/helper.d.ts +1 -0
- package/dist/types/src/utils.d.ts +3 -2
- package/package.json +1 -1
- package/src/barcodes/propPanel.ts +14 -0
- package/src/graphics/cacheKey.ts +3 -0
- package/src/graphics/image.ts +28 -19
- package/src/graphics/{helper.ts → imagehelper.ts} +10 -1
- package/src/graphics/pdfHelper.ts +55 -0
- package/src/graphics/svg.ts +2 -0
- package/src/index.ts +3 -1
- package/src/shapes/line.ts +5 -3
- package/src/shapes/rectAndEllipse.ts +17 -7
- package/src/tables/pdfRender.ts +0 -2
- package/src/tables/propPanel.ts +1 -0
- package/src/tables/uiRender.ts +50 -19
- package/src/text/helper.ts +27 -6
- package/src/text/index.ts +1 -0
- package/src/text/pdfRender.ts +14 -5
- package/src/text/propPanel.ts +1 -0
- package/src/text/uiRender.ts +22 -1
- package/src/utils.ts +46 -9
- package/dist/cjs/src/graphics/helper.js.map +0 -1
- package/dist/esm/src/graphics/helper.js.map +0 -1
- package/dist/types/src/graphics/helper.d.ts +0 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"propPanel.js","sourceRoot":"","sources":["../../../../src/text/propPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIjB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,EAC7B,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAE,EAAE;IACzD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAE,YAAoB,EAAE,eAAe,CAAC,CAAC;IACnE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;YAC1B,CAAC,CAAC;gBACE,GAAG,EAAE,6BAA6B;gBAClC,GAAG,EAAE,6BAA6B;gBAClC,GAAG,EAAE,mBAAmB;aACzB;YACH,CAAC,CAAC,SAAS,CAAC;QACd,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC;IAC7D,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,6BAA6B,CAAC;IACpD,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5B,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA0B;IAC9C,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GAAG,OAAO,CAAE,YAAoB,EAAE,eAAe,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAoC;YAClD,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC;gBACpC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB;gBACzB,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;gBAC3E,IAAI,EAAE,EAAE;aACT;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC;gBAChC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;aAClB;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC;gBACnC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;aAClB;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE;oBACL,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;wBACzD,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;wBACtD,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;qBACrD;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC;gBACzC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE;oBACL,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE;wBACzD,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;wBAC/D,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;qBAChE;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC;gBACtC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;gBAC5B,IAAI,EAAE,CAAC;aACR;YACD,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC5F,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC;wBAC/B,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,CAAC,iBAAiB;wBAC1B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;qBAClB;oBACD,GAAG,EAAE;wBACH,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC;wBAC/B,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,CAAC,iBAAiB;wBAC1B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;qBAClB;oBACD,GAAG,EAAE;wBACH,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC;wBAC/B,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,CAAC,iBAAiB;wBAC1B,KAAK,EAAE;4BACL,OAAO,EAAE;gCACP,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE;gCACpE,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;6BACjE;yBACF;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC;gBAChC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;qBAChC;iBACF;aACF;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC9B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;qBAChC;iBACF;aACF;SACF,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,EAAE,kBAAkB,EAAE;IAC/B,aAAa,EAAE;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QACxB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,uGAAuG;QACvG,4GAA4G;QAC5G,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,iBAAiB;QAC5B,iBAAiB,EAAE,0BAA0B;QAC7C,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,gBAAgB,EAAE,yBAAyB;QAC3C,eAAe,EAAE,SAAS;QAC1B,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,SAAS;QACnB,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,eAAe;KACzB;CACF,CAAC"}
|
1
|
+
{"version":3,"file":"propPanel.js","sourceRoot":"","sources":["../../../../src/text/propPanel.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { getDefaultFont } from '@pdfme/common';
|
2
2
|
import { DEFAULT_FONT_SIZE, DEFAULT_ALIGNMENT, VERTICAL_ALIGN_TOP, VERTICAL_ALIGN_MIDDLE, VERTICAL_ALIGN_BOTTOM, DEFAULT_VERTICAL_ALIGNMENT, DEFAULT_LINE_HEIGHT, DEFAULT_CHARACTER_SPACING, DEFAULT_FONT_COLOR, PLACEHOLDER_FONT_COLOR, } from './constants.js';
|
3
|
-
import { calculateDynamicFontSize, getFontKitFont, getBrowserVerticalFontAdjustments, } from './helper.js';
|
3
|
+
import { calculateDynamicFontSize, getFontKitFont, getBrowserVerticalFontAdjustments, isFirefox, } from './helper.js';
|
4
4
|
import { isEditable } from '../utils.js';
|
5
5
|
const mapVerticalAlignToFlex = (verticalAlignmentValue) => {
|
6
6
|
switch (verticalAlignmentValue) {
|
@@ -75,7 +75,28 @@ export const uiRender = async (arg) => {
|
|
75
75
|
const textBlock = document.createElement('div');
|
76
76
|
Object.assign(textBlock.style, textBlockStyle);
|
77
77
|
if (isEditable(mode, schema)) {
|
78
|
-
|
78
|
+
if (!isFirefox()) {
|
79
|
+
textBlock.contentEditable = 'plaintext-only';
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
textBlock.contentEditable = 'true';
|
83
|
+
textBlock.addEventListener('keydown', (e) => {
|
84
|
+
if (e.key === 'Enter' && !e.shiftKey) {
|
85
|
+
e.preventDefault();
|
86
|
+
document.execCommand('insertLineBreak', false, undefined);
|
87
|
+
}
|
88
|
+
});
|
89
|
+
textBlock.addEventListener('paste', (e) => {
|
90
|
+
e.preventDefault();
|
91
|
+
const paste = e.clipboardData?.getData('text');
|
92
|
+
const selection = window.getSelection();
|
93
|
+
if (!selection?.rangeCount)
|
94
|
+
return;
|
95
|
+
selection.deleteFromDocument();
|
96
|
+
selection.getRangeAt(0).insertNode(document.createTextNode(paste || ''));
|
97
|
+
selection.collapseToEnd();
|
98
|
+
});
|
99
|
+
}
|
79
100
|
textBlock.tabIndex = tabIndex || 0;
|
80
101
|
textBlock.innerText = value;
|
81
102
|
textBlock.addEventListener('blur', (e) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/text/uiRender.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,iCAAiC,
|
1
|
+
{"version":3,"file":"uiRender.js","sourceRoot":"","sources":["../../../../src/text/uiRender.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/utils.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { degrees, degreesToRadians, rgb } from '@pdfme/pdf-lib';
|
1
|
+
import { cmyk, degrees, degreesToRadians, rgb } from '@pdfme/pdf-lib';
|
2
2
|
import { mm2pt, isHexValid } from '@pdfme/common';
|
3
3
|
export const convertForPdfLayoutProps = ({ schema, pageHeight, applyRotateTranslate = true, }) => {
|
4
4
|
const { width: mmWidth, height: mmHeight, position, rotate, opacity } = schema;
|
@@ -72,6 +72,40 @@ export const hex2RgbColor = (hexString) => {
|
|
72
72
|
}
|
73
73
|
return undefined;
|
74
74
|
};
|
75
|
+
export const hex2CmykColor = (hexString) => {
|
76
|
+
if (hexString) {
|
77
|
+
const isValid = isHexValid(hexString);
|
78
|
+
if (!isValid) {
|
79
|
+
throw new Error(`Invalid hex color value ${hexString}`);
|
80
|
+
}
|
81
|
+
// Remove the # if it's present
|
82
|
+
hexString = hexString.replace('#', '');
|
83
|
+
// Extract the hexadecimal color code and the opacity
|
84
|
+
const hexColor = hexString.substring(0, 6);
|
85
|
+
const opacityColor = hexString.substring(6, 8);
|
86
|
+
const opacity = opacityColor ? parseInt(opacityColor, 16) / 255 : 1;
|
87
|
+
// Convert the hex values to decimal
|
88
|
+
let r = parseInt(hexColor.substring(0, 2), 16) / 255;
|
89
|
+
let g = parseInt(hexColor.substring(2, 4), 16) / 255;
|
90
|
+
let b = parseInt(hexColor.substring(4, 6), 16) / 255;
|
91
|
+
// Apply the opacity
|
92
|
+
r = r * opacity + (1 - opacity);
|
93
|
+
g = g * opacity + (1 - opacity);
|
94
|
+
b = b * opacity + (1 - opacity);
|
95
|
+
// Calculate the CMYK values
|
96
|
+
const k = 1 - Math.max(r, g, b);
|
97
|
+
const c = r === 0 ? 0 : (1 - r - k) / (1 - k);
|
98
|
+
const m = g === 0 ? 0 : (1 - g - k) / (1 - k);
|
99
|
+
const y = b === 0 ? 0 : (1 - b - k) / (1 - k);
|
100
|
+
return cmyk(c, m, y, k);
|
101
|
+
}
|
102
|
+
return undefined;
|
103
|
+
};
|
104
|
+
export const hex2PrintingColor = (hexString, colorType) => {
|
105
|
+
return colorType?.toLocaleLowerCase() == 'cmyk'
|
106
|
+
? hex2CmykColor(hexString)
|
107
|
+
: hex2RgbColor(hexString);
|
108
|
+
};
|
75
109
|
export const readFile = (input) => new Promise((resolve, reject) => {
|
76
110
|
const fileReader = new FileReader();
|
77
111
|
fileReader.onload = (e) => {
|
@@ -121,10 +155,5 @@ export const createErrorElm = () => {
|
|
121
155
|
container.appendChild(span);
|
122
156
|
return container;
|
123
157
|
};
|
124
|
-
export const px2mm = (px) => {
|
125
|
-
// http://www.endmemo.com/sconvert/millimeterpixel.php
|
126
|
-
const ratio = 0.26458333333333;
|
127
|
-
return parseFloat(String(px)) * ratio;
|
128
|
-
};
|
129
158
|
export const cloneDeep = (value) => JSON.parse(JSON.stringify(value));
|
130
159
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { UIRenderProps } from '@pdfme/common';
|
2
|
+
import { ImageSchema } from './image';
|
3
|
+
export declare function isPdf(content: string): boolean;
|
4
|
+
/**
|
5
|
+
* convert pdf to blob image url
|
6
|
+
* @param content
|
7
|
+
*/
|
8
|
+
export declare const pdfToImage: ({ schema, value, _cache, pdfJs, }: UIRenderProps<ImageSchema>) => Promise<string>;
|
@@ -3,11 +3,11 @@ import image, { readOnlyImage } from './graphics/image.js';
|
|
3
3
|
import svg, { readOnlySvg } from './graphics/svg.js';
|
4
4
|
import barcodes from './barcodes/index.js';
|
5
5
|
import line from './shapes/line.js';
|
6
|
-
import table from './tables/index.js';
|
7
6
|
import { modifyTemplateForTable, getDynamicHeightForTable } from './tables/dynamicTemplate.js';
|
8
7
|
import { rectangle, ellipse } from './shapes/rectAndEllipse.js';
|
9
8
|
import { convertForPdfLayoutProps, rotatePoint } from './utils.js';
|
9
|
+
declare const tableBeta: import("@pdfme/common").Plugin<import("./tables/types.js").TableSchema>;
|
10
10
|
declare const builtInPlugins: {
|
11
11
|
Text: import("@pdfme/common").Plugin<import("./text/types.js").TextSchema>;
|
12
12
|
};
|
13
|
-
export { text, readOnlyText, image, readOnlyImage, svg, readOnlySvg, barcodes, line,
|
13
|
+
export { text, readOnlyText, image, readOnlyImage, svg, readOnlySvg, barcodes, line, tableBeta, modifyTemplateForTable, getDynamicHeightForTable, rectangle, ellipse, builtInPlugins, convertForPdfLayoutProps, rotatePoint, };
|
@@ -9,6 +9,7 @@ export declare const rectangle: {
|
|
9
9
|
propPanel: {
|
10
10
|
defaultSchema: {
|
11
11
|
type: "ellipse" | "rectangle";
|
12
|
+
icon: string;
|
12
13
|
borderWidth: number;
|
13
14
|
borderColor: string;
|
14
15
|
color: string;
|
@@ -37,6 +38,7 @@ export declare const rectangle: {
|
|
37
38
|
key: string;
|
38
39
|
opacity?: number | undefined;
|
39
40
|
rotate?: number | undefined;
|
41
|
+
icon?: string | undefined;
|
40
42
|
content?: string | undefined;
|
41
43
|
readOnly?: boolean | undefined;
|
42
44
|
};
|
@@ -54,6 +56,7 @@ export declare const rectangle: {
|
|
54
56
|
key: string;
|
55
57
|
opacity?: number | undefined;
|
56
58
|
rotate?: number | undefined;
|
59
|
+
icon?: string | undefined;
|
57
60
|
content?: string | undefined;
|
58
61
|
readOnly?: boolean | undefined;
|
59
62
|
}[];
|
@@ -70,6 +73,7 @@ export declare const ellipse: {
|
|
70
73
|
propPanel: {
|
71
74
|
defaultSchema: {
|
72
75
|
type: "ellipse" | "rectangle";
|
76
|
+
icon: string;
|
73
77
|
borderWidth: number;
|
74
78
|
borderColor: string;
|
75
79
|
color: string;
|
@@ -98,6 +102,7 @@ export declare const ellipse: {
|
|
98
102
|
key: string;
|
99
103
|
opacity?: number | undefined;
|
100
104
|
rotate?: number | undefined;
|
105
|
+
icon?: string | undefined;
|
101
106
|
content?: string | undefined;
|
102
107
|
readOnly?: boolean | undefined;
|
103
108
|
};
|
@@ -115,6 +120,7 @@ export declare const ellipse: {
|
|
115
120
|
key: string;
|
116
121
|
opacity?: number | undefined;
|
117
122
|
rotate?: number | undefined;
|
123
|
+
icon?: string | undefined;
|
118
124
|
content?: string | undefined;
|
119
125
|
readOnly?: boolean | undefined;
|
120
126
|
}[];
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Schema, Mode } from '@pdfme/common';
|
1
|
+
import { Schema, Mode, ColorType } from '@pdfme/common';
|
2
2
|
export declare const convertForPdfLayoutProps: ({ schema, pageHeight, applyRotateTranslate, }: {
|
3
3
|
schema: Schema;
|
4
4
|
pageHeight: number;
|
@@ -26,7 +26,8 @@ export declare const rotatePoint: (point: {
|
|
26
26
|
export declare const addAlphaToHex: (hex: string, alphaPercentage: number) => string;
|
27
27
|
export declare const isEditable: (mode: Mode, schema: Schema) => boolean;
|
28
28
|
export declare const hex2RgbColor: (hexString: string | undefined) => import("@pdfme/pdf-lib").RGB | undefined;
|
29
|
+
export declare const hex2CmykColor: (hexString: string | undefined) => import("@pdfme/pdf-lib").CMYK | undefined;
|
30
|
+
export declare const hex2PrintingColor: (hexString: string | undefined, colorType?: ColorType) => import("@pdfme/pdf-lib").RGB | import("@pdfme/pdf-lib").CMYK | undefined;
|
29
31
|
export declare const readFile: (input: File | FileList | null) => Promise<string | ArrayBuffer>;
|
30
32
|
export declare const createErrorElm: () => HTMLDivElement;
|
31
|
-
export declare const px2mm: (px: number) => number;
|
32
33
|
export declare const cloneDeep: <T>(value: T) => T;
|
package/package.json
CHANGED
@@ -16,10 +16,14 @@ const defaultIncludetext = { includetext: DEFAULT_BARCODE_INCLUDETEXT };
|
|
16
16
|
const position = { x: 0, y: 0 };
|
17
17
|
const default40x20 = { width: 40, height: 20 };
|
18
18
|
|
19
|
+
const barcodeIcon =
|
20
|
+
'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-barcode"><path d="M3 5v14"/><path d="M8 5v14"/><path d="M12 5v14"/><path d="M17 5v14"/><path d="M21 5v14"/></svg>';
|
21
|
+
|
19
22
|
const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
20
23
|
{
|
21
24
|
defaultSchema: {
|
22
25
|
type: 'qrcode',
|
26
|
+
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-qr-code"><rect width="5" height="5" x="3" y="3" rx="1"/><rect width="5" height="5" x="16" y="3" rx="1"/><rect width="5" height="5" x="3" y="16" rx="1"/><path d="M21 16h-3a2 2 0 0 0-2 2v3"/><path d="M21 21v.01"/><path d="M12 7v3a2 2 0 0 1-2 2H7"/><path d="M3 12h.01"/><path d="M12 3h.01"/><path d="M12 16v.01"/><path d="M16 12h1"/><path d="M21 12v.01"/><path d="M12 21v-1"/></svg>',
|
23
27
|
content: 'https://pdfme.com/',
|
24
28
|
position,
|
25
29
|
...defaultColors,
|
@@ -32,6 +36,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
32
36
|
{
|
33
37
|
defaultSchema: {
|
34
38
|
type: 'japanpost',
|
39
|
+
icon: barcodeIcon,
|
35
40
|
content: '6540123789-A-K-Z',
|
36
41
|
position,
|
37
42
|
...defaultColors,
|
@@ -46,6 +51,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
46
51
|
{
|
47
52
|
defaultSchema: {
|
48
53
|
type: 'ean13',
|
54
|
+
icon: barcodeIcon,
|
49
55
|
content: '2112345678900',
|
50
56
|
position,
|
51
57
|
...defaultColors,
|
@@ -60,6 +66,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
60
66
|
{
|
61
67
|
defaultSchema: {
|
62
68
|
type: 'ean8',
|
69
|
+
icon: barcodeIcon,
|
63
70
|
content: '02345673',
|
64
71
|
position,
|
65
72
|
...defaultColors,
|
@@ -73,6 +80,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
73
80
|
{
|
74
81
|
defaultSchema: {
|
75
82
|
type: 'code39',
|
83
|
+
icon: barcodeIcon,
|
76
84
|
content: 'THIS IS CODE 39',
|
77
85
|
position,
|
78
86
|
...defaultColors,
|
@@ -85,6 +93,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
85
93
|
{
|
86
94
|
defaultSchema: {
|
87
95
|
type: 'code128',
|
96
|
+
icon: barcodeIcon,
|
88
97
|
content: 'This is Code 128!',
|
89
98
|
position,
|
90
99
|
...defaultColors,
|
@@ -98,6 +107,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
98
107
|
{
|
99
108
|
defaultSchema: {
|
100
109
|
type: 'nw7',
|
110
|
+
icon: barcodeIcon,
|
101
111
|
content: 'A0123456789B',
|
102
112
|
position,
|
103
113
|
...defaultColors,
|
@@ -111,6 +121,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
111
121
|
{
|
112
122
|
defaultSchema: {
|
113
123
|
type: 'itf14',
|
124
|
+
icon: barcodeIcon,
|
114
125
|
content: '04601234567893',
|
115
126
|
position,
|
116
127
|
...defaultColors,
|
@@ -125,6 +136,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
125
136
|
{
|
126
137
|
defaultSchema: {
|
127
138
|
type: 'upca',
|
139
|
+
icon: barcodeIcon,
|
128
140
|
content: '416000336108',
|
129
141
|
position,
|
130
142
|
...defaultColors,
|
@@ -139,6 +151,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
139
151
|
{
|
140
152
|
defaultSchema: {
|
141
153
|
type: 'upce',
|
154
|
+
icon: barcodeIcon,
|
142
155
|
content: '00123457',
|
143
156
|
position,
|
144
157
|
...defaultColors,
|
@@ -152,6 +165,7 @@ const barcodeDefaults: { defaultSchema: BarcodeSchema }[] = [
|
|
152
165
|
{
|
153
166
|
defaultSchema: {
|
154
167
|
type: 'gs1datamatrix',
|
168
|
+
icon: barcodeIcon,
|
155
169
|
content: '(01)03453120000011(17)191125(10)ABCD1234',
|
156
170
|
position,
|
157
171
|
...defaultColors,
|
package/src/graphics/image.ts
CHANGED
@@ -1,40 +1,42 @@
|
|
1
1
|
import type { ChangeEvent } from 'react';
|
2
|
-
import type { PDFImage } from '@pdfme/pdf-lib';
|
2
|
+
import type { PDFImage, PDFEmbeddedPage } from '@pdfme/pdf-lib';
|
3
3
|
import type { Plugin } from '@pdfme/common';
|
4
4
|
import type { PDFRenderProps, Schema } from '@pdfme/common';
|
5
5
|
import type * as CSS from 'csstype';
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import { convertForPdfLayoutProps, addAlphaToHex, isEditable, readFile, px2mm } from '../utils.js';
|
6
|
+
import { UIRenderProps, px2mm } from '@pdfme/common';
|
7
|
+
import { convertForPdfLayoutProps, addAlphaToHex, isEditable, readFile } from '../utils.js';
|
9
8
|
import { DEFAULT_OPACITY } from '../constants.js';
|
10
|
-
import {
|
9
|
+
import { getImageDimension } from './imagehelper.js';
|
10
|
+
import { isPdf, pdfToImage } from './pdfHelper.js';
|
11
11
|
|
12
12
|
const getCacheKey = (schema: Schema, input: string) => `${schema.type}${input}`;
|
13
13
|
const fullSize = { width: '100%', height: '100%' };
|
14
14
|
const defaultValue =
|
15
15
|
'data:image/png;base64,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';
|
16
16
|
|
17
|
-
interface ImageSchema extends Schema {}
|
17
|
+
export interface ImageSchema extends Schema {}
|
18
18
|
|
19
19
|
const imageSchema: Plugin<ImageSchema> = {
|
20
20
|
pdf: async (arg: PDFRenderProps<ImageSchema>) => {
|
21
21
|
const { value, schema, pdfDoc, page, _cache } = arg;
|
22
|
-
|
22
|
+
const isGraphicPdf = isPdf(value);
|
23
|
+
const isImageOrPdf = value.startsWith('data:image/') || isGraphicPdf;
|
24
|
+
if (!value || !isImageOrPdf) return;
|
23
25
|
|
24
26
|
const inputImageCacheKey = getCacheKey(schema, value);
|
25
|
-
let image = _cache.get(inputImageCacheKey) as PDFImage;
|
27
|
+
let image = _cache.get(inputImageCacheKey) as PDFImage | PDFEmbeddedPage;
|
26
28
|
if (!image) {
|
27
|
-
|
28
|
-
|
29
|
+
if (isGraphicPdf) {
|
30
|
+
[image] = await pdfDoc.embedPdf(value);
|
31
|
+
} else {
|
32
|
+
const isPng = value.startsWith('data:image/png;');
|
33
|
+
image = await (isPng ? pdfDoc.embedPng(value) : pdfDoc.embedJpg(value));
|
34
|
+
}
|
29
35
|
_cache.set(inputImageCacheKey, image);
|
30
36
|
}
|
31
37
|
|
32
38
|
const _schema = { ...schema, position: { ...schema.position } };
|
33
|
-
const
|
34
|
-
const idx = value.indexOf(dataUriPrefix);
|
35
|
-
const imgBase64 = value.substring(idx + dataUriPrefix.length, value.length);
|
36
|
-
const dimension = imageSize(Buffer.from(imgBase64, 'base64'));
|
37
|
-
|
39
|
+
const dimension = isGraphicPdf ? image.scale(1) : getImageDimension(value);
|
38
40
|
const imageWidth = px2mm(dimension.width);
|
39
41
|
const imageHeight = px2mm(dimension.height);
|
40
42
|
const boxWidth = _schema.width;
|
@@ -57,9 +59,13 @@ const imageSchema: Plugin<ImageSchema> = {
|
|
57
59
|
const lProps = convertForPdfLayoutProps({ schema: _schema, pageHeight });
|
58
60
|
const { width, height, rotate, position, opacity } = lProps;
|
59
61
|
const { x, y } = position;
|
60
|
-
|
62
|
+
|
63
|
+
const drawOptions = { x, y, rotate, width, height, opacity };
|
64
|
+
isGraphicPdf
|
65
|
+
? page.drawPage(image as PDFEmbeddedPage, drawOptions)
|
66
|
+
: page.drawImage(image as PDFImage, drawOptions);
|
61
67
|
},
|
62
|
-
ui: (arg: UIRenderProps<ImageSchema>) => {
|
68
|
+
ui: async (arg: UIRenderProps<ImageSchema>) => {
|
63
69
|
const {
|
64
70
|
value,
|
65
71
|
rootElement,
|
@@ -93,6 +99,7 @@ const imageSchema: Plugin<ImageSchema> = {
|
|
93
99
|
|
94
100
|
// image tag
|
95
101
|
if (value) {
|
102
|
+
let src = isPdf(value) ? await pdfToImage(arg) : value;
|
96
103
|
const img = document.createElement('img');
|
97
104
|
const imgStyle: CSS.Properties = {
|
98
105
|
height: '100%',
|
@@ -101,7 +108,7 @@ const imageSchema: Plugin<ImageSchema> = {
|
|
101
108
|
objectFit: 'contain',
|
102
109
|
};
|
103
110
|
Object.assign(img.style, imgStyle);
|
104
|
-
img.src =
|
111
|
+
img.src = src;
|
105
112
|
container.appendChild(img);
|
106
113
|
}
|
107
114
|
|
@@ -159,7 +166,7 @@ const imageSchema: Plugin<ImageSchema> = {
|
|
159
166
|
Object.assign(input.style, inputStyle);
|
160
167
|
input.tabIndex = tabIndex || 0;
|
161
168
|
input.type = 'file';
|
162
|
-
input.accept = 'image/jpeg, image/png';
|
169
|
+
input.accept = 'image/jpeg, image/png, application/pdf';
|
163
170
|
input.addEventListener('change', (event: Event) => {
|
164
171
|
const changeEvent = event as unknown as ChangeEvent<HTMLInputElement>;
|
165
172
|
readFile(changeEvent.target.files).then(
|
@@ -174,6 +181,7 @@ const imageSchema: Plugin<ImageSchema> = {
|
|
174
181
|
schema: {},
|
175
182
|
defaultSchema: {
|
176
183
|
type: 'image',
|
184
|
+
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-image"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',
|
177
185
|
content: defaultValue,
|
178
186
|
position: { x: 0, y: 0 },
|
179
187
|
width: 40,
|
@@ -196,6 +204,7 @@ export const readOnlyImage: Plugin<ImageSchema> = {
|
|
196
204
|
defaultSchema: {
|
197
205
|
...imageSchema.propPanel.defaultSchema,
|
198
206
|
type: 'readOnlyImage',
|
207
|
+
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-image-off"><line x1="2" x2="22" y1="2" y2="22"/><path d="M10.41 10.41a2 2 0 1 1-2.83-2.83"/><line x1="13.5" x2="6" y1="13.5" y2="21"/><line x1="18" x2="21" y1="12" y2="15"/><path d="M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59"/><path d="M21 15V5a2 2 0 0 0-2-2H9"/></svg>',
|
199
208
|
readOnly: true,
|
200
209
|
},
|
201
210
|
},
|
@@ -1,5 +1,7 @@
|
|
1
1
|
// ref: https://github.com/image-size/image-size ----------------------------
|
2
2
|
// The following code is adapted from the image-size code. Unnecessary formats and dependencies on Node have been removed.
|
3
|
+
import { Buffer } from 'buffer';
|
4
|
+
|
3
5
|
type IImage = {
|
4
6
|
validate: (input: Uint8Array) => boolean;
|
5
7
|
calculate: (input: Uint8Array) => { width: number; height: number } | undefined;
|
@@ -130,7 +132,14 @@ function detector(input: Uint8Array): imageType | undefined {
|
|
130
132
|
return keys.find((key: imageType) => typeHandlers[key].validate(input));
|
131
133
|
}
|
132
134
|
|
133
|
-
export const
|
135
|
+
export const getImageDimension = (value: string): { height: number; width: number } => {
|
136
|
+
const dataUriPrefix = ';base64,';
|
137
|
+
const idx = value.indexOf(dataUriPrefix);
|
138
|
+
const imgBase64 = value.substring(idx + dataUriPrefix.length, value.length);
|
139
|
+
return imageSize(Buffer.from(imgBase64, 'base64'));
|
140
|
+
};
|
141
|
+
|
142
|
+
const imageSize = (imgBuffer: Buffer): { height: number; width: number } => {
|
134
143
|
const type = detector(imgBuffer);
|
135
144
|
|
136
145
|
if (typeof type !== 'undefined' && type in typeHandlers) {
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { Schema, UIRenderProps } from '@pdfme/common';
|
2
|
+
import { getCacheKey } from './cacheKey';
|
3
|
+
import { ImageSchema } from './image';
|
4
|
+
|
5
|
+
export function isPdf(content: string): boolean {
|
6
|
+
return content.startsWith('data:application/pdf;');
|
7
|
+
}
|
8
|
+
|
9
|
+
/**
|
10
|
+
* convert pdf to blob image url
|
11
|
+
* @param content
|
12
|
+
*/
|
13
|
+
export const pdfToImage = async ({
|
14
|
+
schema,
|
15
|
+
value,
|
16
|
+
_cache,
|
17
|
+
pdfJs,
|
18
|
+
}: UIRenderProps<ImageSchema>): Promise<string> => {
|
19
|
+
// using value from cache to prevent rerending pdf to image
|
20
|
+
const pdfImageCacheKey = getCacheKey(schema, value);
|
21
|
+
const imageSrc = _cache.get(pdfImageCacheKey);
|
22
|
+
if (imageSrc) return imageSrc;
|
23
|
+
|
24
|
+
const pdfDoc = await pdfJs.getDocument({ url: value }).promise;
|
25
|
+
const page = await pdfDoc.getPage(1);
|
26
|
+
|
27
|
+
const canvas = document.createElement('canvas');
|
28
|
+
const viewport = page.getViewport({ scale: 1 });
|
29
|
+
canvas.width = viewport.width;
|
30
|
+
canvas.height = viewport.height;
|
31
|
+
const canvasContext = canvas.getContext('2d')!;
|
32
|
+
|
33
|
+
await page.render({ canvasContext, viewport }).promise;
|
34
|
+
const image = await _canvasToObjectUrl(canvas);
|
35
|
+
|
36
|
+
_cache.set(pdfImageCacheKey, image);
|
37
|
+
return image;
|
38
|
+
};
|
39
|
+
|
40
|
+
/**
|
41
|
+
* convert canvas to blob url
|
42
|
+
* @param canvas
|
43
|
+
*/
|
44
|
+
const _canvasToObjectUrl = async (canvas: HTMLCanvasElement): Promise<string> => {
|
45
|
+
return new Promise((resolve, reject) => {
|
46
|
+
canvas.toBlob(function (blob) {
|
47
|
+
if (!blob) {
|
48
|
+
reject('inavlid canvas');
|
49
|
+
} else {
|
50
|
+
const url = URL.createObjectURL(blob);
|
51
|
+
resolve(url);
|
52
|
+
}
|
53
|
+
});
|
54
|
+
});
|
55
|
+
};
|
package/src/graphics/svg.ts
CHANGED
@@ -73,6 +73,7 @@ const svgSchema: Plugin<SVGSchema> = {
|
|
73
73
|
schema: {},
|
74
74
|
defaultSchema: {
|
75
75
|
type: 'svg',
|
76
|
+
icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-route"><circle cx="6" cy="19" r="3"/><path d="M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15"/><circle cx="18" cy="5" r="3"/></svg>',
|
76
77
|
content: defaultValue,
|
77
78
|
position: { x: 0, y: 0 },
|
78
79
|
width: 40,
|
@@ -91,6 +92,7 @@ export const readOnlySvg: Plugin<SVGSchema> = {
|
|
91
92
|
defaultSchema: {
|
92
93
|
...svgSchema.propPanel.defaultSchema,
|
93
94
|
type: 'readOnlySvg',
|
95
|
+
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-route-off"><circle cx="6" cy="19" r="3"/><path d="M9 19h8.5c.4 0 .9-.1 1.3-.2"/><path d="M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12"/><path d="m2 2 20 20"/><path d="M21 15.3a3.5 3.5 0 0 0-3.3-3.3"/><path d="M15 5h-4.3"/><circle cx="18" cy="5" r="3"/></svg>',
|
94
96
|
readOnly: true,
|
95
97
|
},
|
96
98
|
},
|