@pdfme/schemas 5.3.8-dev.3 → 5.3.8-dev.36
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/dist/cjs/__tests__/barcode.test.js +115 -113
- package/dist/cjs/__tests__/barcode.test.js.map +1 -1
- package/dist/cjs/__tests__/multiVariableText.test.js +15 -15
- package/dist/cjs/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/cjs/__tests__/text.test.js +71 -71
- package/dist/cjs/__tests__/text.test.js.map +1 -1
- package/dist/cjs/__tests__/utils.test.js +76 -15
- package/dist/cjs/__tests__/utils.test.js.map +1 -1
- package/dist/cjs/src/checkbox/index.js +3 -3
- package/dist/cjs/src/checkbox/index.js.map +1 -1
- package/dist/cjs/src/date/date.js +2 -2
- package/dist/cjs/src/date/date.js.map +1 -1
- package/dist/cjs/src/date/dateTime.js +2 -2
- package/dist/cjs/src/date/dateTime.js.map +1 -1
- package/dist/cjs/src/date/helper.js +110 -78
- package/dist/cjs/src/date/helper.js.map +1 -1
- package/dist/cjs/src/date/time.js +2 -2
- package/dist/cjs/src/date/time.js.map +1 -1
- package/dist/cjs/src/graphics/svg.js +25 -2
- package/dist/cjs/src/graphics/svg.js.map +1 -1
- package/dist/cjs/src/index.js +30 -30
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/multiVariableText/helper.js +2 -2
- package/dist/cjs/src/multiVariableText/helper.js.map +1 -1
- package/dist/cjs/src/multiVariableText/pdfRender.js +5 -5
- package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/cjs/src/multiVariableText/propPanel.js +5 -5
- package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/cjs/src/multiVariableText/uiRender.js +10 -10
- package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/cjs/src/radioGroup/index.js +3 -3
- package/dist/cjs/src/radioGroup/index.js.map +1 -1
- package/dist/cjs/src/select/index.js +9 -9
- package/dist/cjs/src/select/index.js.map +1 -1
- package/dist/cjs/src/tables/classes.js +4 -4
- package/dist/cjs/src/tables/classes.js.map +1 -1
- package/dist/cjs/src/tables/dynamicTemplate.js +2 -2
- package/dist/cjs/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/cjs/src/tables/helper.js +21 -21
- package/dist/cjs/src/tables/helper.js.map +1 -1
- package/dist/cjs/src/tables/pdfRender.js +8 -8
- package/dist/cjs/src/tables/pdfRender.js.map +1 -1
- package/dist/cjs/src/tables/tableHelper.js +5 -5
- package/dist/cjs/src/tables/tableHelper.js.map +1 -1
- package/dist/cjs/src/text/extraFormatter.js +14 -14
- package/dist/cjs/src/text/extraFormatter.js.map +1 -1
- package/dist/cjs/src/text/propPanel.js +2 -2
- package/dist/cjs/src/text/propPanel.js.map +1 -1
- package/dist/cjs/src/utils.js +53 -9
- package/dist/cjs/src/utils.js.map +1 -1
- package/dist/esm/__tests__/barcode.test.js +8 -6
- package/dist/esm/__tests__/barcode.test.js.map +1 -1
- package/dist/esm/__tests__/multiVariableText.test.js +1 -1
- package/dist/esm/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/esm/__tests__/text.test.js +2 -2
- package/dist/esm/__tests__/text.test.js.map +1 -1
- package/dist/esm/__tests__/utils.test.js +65 -4
- package/dist/esm/__tests__/utils.test.js.map +1 -1
- package/dist/esm/src/checkbox/index.js +1 -1
- package/dist/esm/src/checkbox/index.js.map +1 -1
- package/dist/esm/src/date/date.js +1 -1
- package/dist/esm/src/date/date.js.map +1 -1
- package/dist/esm/src/date/dateTime.js +1 -1
- package/dist/esm/src/date/dateTime.js.map +1 -1
- package/dist/esm/src/date/helper.js +70 -38
- package/dist/esm/src/date/helper.js.map +1 -1
- package/dist/esm/src/date/time.js +1 -1
- package/dist/esm/src/date/time.js.map +1 -1
- package/dist/esm/src/graphics/svg.js +25 -2
- package/dist/esm/src/graphics/svg.js.map +1 -1
- package/dist/esm/src/index.js +14 -14
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/multiVariableText/helper.js +2 -2
- package/dist/esm/src/multiVariableText/helper.js.map +1 -1
- package/dist/esm/src/multiVariableText/pdfRender.js +2 -2
- package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/esm/src/multiVariableText/propPanel.js +1 -1
- package/dist/esm/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/esm/src/multiVariableText/uiRender.js +4 -4
- package/dist/esm/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/esm/src/radioGroup/index.js +1 -1
- package/dist/esm/src/radioGroup/index.js.map +1 -1
- package/dist/esm/src/select/index.js +2 -2
- package/dist/esm/src/select/index.js.map +1 -1
- package/dist/esm/src/tables/classes.js +1 -1
- package/dist/esm/src/tables/classes.js.map +1 -1
- package/dist/esm/src/tables/dynamicTemplate.js +1 -1
- package/dist/esm/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/esm/src/tables/helper.js +1 -1
- package/dist/esm/src/tables/helper.js.map +1 -1
- package/dist/esm/src/tables/pdfRender.js +4 -4
- package/dist/esm/src/tables/pdfRender.js.map +1 -1
- package/dist/esm/src/tables/tableHelper.js +1 -1
- package/dist/esm/src/tables/tableHelper.js.map +1 -1
- package/dist/esm/src/text/extraFormatter.js +2 -2
- package/dist/esm/src/text/extraFormatter.js.map +1 -1
- package/dist/esm/src/text/propPanel.js +1 -1
- package/dist/esm/src/text/propPanel.js.map +1 -1
- package/dist/esm/src/utils.js +53 -9
- package/dist/esm/src/utils.js.map +1 -1
- package/dist/node/__tests__/barcode.test.js +121 -124
- package/dist/node/__tests__/barcode.test.js.map +1 -1
- package/dist/node/__tests__/multiVariableText.test.js +15 -17
- package/dist/node/__tests__/multiVariableText.test.js.map +1 -1
- package/dist/node/__tests__/text.test.js +77 -102
- package/dist/node/__tests__/text.test.js.map +1 -1
- package/dist/node/__tests__/utils.test.js +90 -31
- package/dist/node/__tests__/utils.test.js.map +1 -1
- package/dist/node/src/barcodes/constants.js +4 -7
- package/dist/node/src/barcodes/constants.js.map +1 -1
- package/dist/node/src/barcodes/helper.js +16 -26
- package/dist/node/src/barcodes/helper.js.map +1 -1
- package/dist/node/src/barcodes/index.js +12 -14
- package/dist/node/src/barcodes/index.js.map +1 -1
- package/dist/node/src/barcodes/pdfRender.js +6 -10
- package/dist/node/src/barcodes/pdfRender.js.map +1 -1
- package/dist/node/src/barcodes/propPanel.js +20 -24
- package/dist/node/src/barcodes/propPanel.js.map +1 -1
- package/dist/node/src/barcodes/types.js +1 -2
- package/dist/node/src/barcodes/uiRender.js +8 -12
- package/dist/node/src/barcodes/uiRender.js.map +1 -1
- package/dist/node/src/checkbox/index.js +12 -17
- package/dist/node/src/checkbox/index.js.map +1 -1
- package/dist/node/src/constants.js +2 -5
- package/dist/node/src/constants.js.map +1 -1
- package/dist/node/src/date/date.js +5 -7
- package/dist/node/src/date/date.js.map +1 -1
- package/dist/node/src/date/dateTime.js +5 -7
- package/dist/node/src/date/dateTime.js.map +1 -1
- package/dist/node/src/date/helper.js +135 -133
- package/dist/node/src/date/helper.js.map +1 -1
- package/dist/node/src/date/time.js +5 -7
- package/dist/node/src/date/time.js.map +1 -1
- package/dist/node/src/date/types.js +1 -2
- package/dist/node/src/graphics/cacheKey.js +1 -5
- package/dist/node/src/graphics/cacheKey.js.map +1 -1
- package/dist/node/src/graphics/image.js +15 -17
- package/dist/node/src/graphics/image.js.map +1 -1
- package/dist/node/src/graphics/imagehelper.js +3 -7
- package/dist/node/src/graphics/imagehelper.js.map +1 -1
- package/dist/node/src/graphics/svg.js +35 -14
- package/dist/node/src/graphics/svg.js.map +1 -1
- package/dist/node/src/index.js +18 -37
- package/dist/node/src/index.js.map +1 -1
- package/dist/node/src/multiVariableText/helper.js +4 -9
- package/dist/node/src/multiVariableText/helper.js.map +1 -1
- package/dist/node/src/multiVariableText/index.js +10 -12
- package/dist/node/src/multiVariableText/index.js.map +1 -1
- package/dist/node/src/multiVariableText/pdfRender.js +6 -10
- package/dist/node/src/multiVariableText/pdfRender.js.map +1 -1
- package/dist/node/src/multiVariableText/propPanel.js +6 -9
- package/dist/node/src/multiVariableText/propPanel.js.map +1 -1
- package/dist/node/src/multiVariableText/types.js +1 -2
- package/dist/node/src/multiVariableText/uiRender.js +13 -17
- package/dist/node/src/multiVariableText/uiRender.js.map +1 -1
- package/dist/node/src/radioGroup/index.js +11 -16
- package/dist/node/src/radioGroup/index.js.map +1 -1
- package/dist/node/src/select/index.js +13 -18
- package/dist/node/src/select/index.js.map +1 -1
- package/dist/node/src/shapes/line.js +10 -12
- package/dist/node/src/shapes/line.js.map +1 -1
- package/dist/node/src/shapes/rectAndEllipse.js +18 -21
- package/dist/node/src/shapes/rectAndEllipse.js.map +1 -1
- package/dist/node/src/tables/cell.js +15 -20
- package/dist/node/src/tables/cell.js.map +1 -1
- package/dist/node/src/tables/classes.js +11 -18
- package/dist/node/src/tables/classes.js.map +1 -1
- package/dist/node/src/tables/dynamicTemplate.js +5 -9
- package/dist/node/src/tables/dynamicTemplate.js.map +1 -1
- package/dist/node/src/tables/helper.js +27 -35
- package/dist/node/src/tables/helper.js.map +1 -1
- package/dist/node/src/tables/index.js +10 -12
- package/dist/node/src/tables/index.js.map +1 -1
- package/dist/node/src/tables/pdfRender.js +9 -16
- package/dist/node/src/tables/pdfRender.js.map +1 -1
- package/dist/node/src/tables/propPanel.js +12 -15
- package/dist/node/src/tables/propPanel.js.map +1 -1
- package/dist/node/src/tables/tableHelper.js +11 -15
- package/dist/node/src/tables/tableHelper.js.map +1 -1
- package/dist/node/src/tables/types.js +1 -2
- package/dist/node/src/tables/uiRender.js +15 -22
- package/dist/node/src/tables/uiRender.js.map +1 -1
- package/dist/node/src/text/constants.js +22 -25
- package/dist/node/src/text/constants.js.map +1 -1
- package/dist/node/src/text/extraFormatter.js +17 -21
- package/dist/node/src/text/extraFormatter.js.map +1 -1
- package/dist/node/src/text/helper.js +48 -85
- package/dist/node/src/text/helper.js.map +1 -1
- package/dist/node/src/text/icons/index.js +11 -14
- package/dist/node/src/text/icons/index.js.map +1 -1
- package/dist/node/src/text/index.js +10 -12
- package/dist/node/src/text/index.js.map +1 -1
- package/dist/node/src/text/pdfRender.js +32 -36
- package/dist/node/src/text/pdfRender.js.map +1 -1
- package/dist/node/src/text/propPanel.js +22 -25
- package/dist/node/src/text/propPanel.js.map +1 -1
- package/dist/node/src/text/types.js +1 -2
- package/dist/node/src/text/uiRender.js +34 -42
- package/dist/node/src/text/uiRender.js.map +1 -1
- package/dist/node/src/utils.js +79 -47
- package/dist/node/src/utils.js.map +1 -1
- package/dist/types/src/barcodes/helper.d.ts +1 -1
- package/dist/types/src/barcodes/index.d.ts +1 -1
- package/dist/types/src/barcodes/pdfRender.d.ts +1 -1
- package/dist/types/src/barcodes/propPanel.d.ts +1 -1
- package/dist/types/src/barcodes/uiRender.d.ts +1 -1
- package/dist/types/src/date/date.d.ts +1 -1
- package/dist/types/src/date/dateTime.d.ts +1 -1
- package/dist/types/src/date/helper.d.ts +1 -1
- package/dist/types/src/date/time.d.ts +1 -1
- package/dist/types/src/date/types.d.ts +6 -1
- package/dist/types/src/index.d.ts +15 -15
- package/dist/types/src/multiVariableText/helper.d.ts +1 -1
- package/dist/types/src/multiVariableText/index.d.ts +1 -1
- package/dist/types/src/multiVariableText/pdfRender.d.ts +1 -1
- package/dist/types/src/multiVariableText/propPanel.d.ts +1 -1
- package/dist/types/src/multiVariableText/types.d.ts +1 -1
- package/dist/types/src/multiVariableText/uiRender.d.ts +1 -1
- package/dist/types/src/select/index.d.ts +1 -1
- package/dist/types/src/tables/cell.d.ts +1 -1
- package/dist/types/src/tables/classes.d.ts +1 -1
- package/dist/types/src/tables/helper.d.ts +4 -4
- package/dist/types/src/tables/pdfRender.d.ts +1 -1
- package/dist/types/src/tables/propPanel.d.ts +1 -1
- package/dist/types/src/tables/tableHelper.d.ts +1 -1
- package/dist/types/src/tables/types.d.ts +1 -1
- package/dist/types/src/text/constants.d.ts +1 -1
- package/dist/types/src/text/helper.d.ts +1 -1
- package/dist/types/src/text/index.d.ts +1 -1
- package/dist/types/src/text/pdfRender.d.ts +1 -1
- package/dist/types/src/text/propPanel.d.ts +1 -1
- package/dist/types/src/text/uiRender.d.ts +1 -1
- package/package.json +3 -3
- package/src/barcodes/helper.ts +1 -1
- package/src/barcodes/index.ts +1 -1
- package/src/barcodes/pdfRender.ts +1 -1
- package/src/barcodes/propPanel.ts +1 -1
- package/src/barcodes/uiRender.ts +1 -1
- package/src/checkbox/index.ts +1 -1
- package/src/date/date.ts +1 -1
- package/src/date/dateTime.ts +1 -1
- package/src/date/helper.ts +84 -43
- package/src/date/time.ts +1 -1
- package/src/date/types.ts +7 -1
- package/src/graphics/svg.ts +27 -2
- package/src/index.ts +14 -14
- package/src/multiVariableText/helper.ts +15 -7
- package/src/multiVariableText/index.ts +1 -1
- package/src/multiVariableText/pdfRender.ts +3 -3
- package/src/multiVariableText/propPanel.ts +2 -2
- package/src/multiVariableText/types.ts +1 -1
- package/src/multiVariableText/uiRender.ts +5 -5
- package/src/radioGroup/index.ts +1 -1
- package/src/select/index.ts +3 -3
- package/src/tables/cell.ts +1 -1
- package/src/tables/classes.ts +2 -2
- package/src/tables/dynamicTemplate.ts +2 -2
- package/src/tables/helper.ts +1 -1
- package/src/tables/pdfRender.ts +6 -6
- package/src/tables/propPanel.ts +1 -1
- package/src/tables/tableHelper.ts +2 -2
- package/src/tables/types.ts +1 -1
- package/src/tables/uiRender.ts +1 -1
- package/src/text/constants.ts +1 -1
- package/src/text/extraFormatter.ts +2 -2
- package/src/text/helper.ts +1 -1
- package/src/text/index.ts +1 -1
- package/src/text/pdfRender.ts +1 -1
- package/src/text/propPanel.ts +2 -2
- package/src/text/uiRender.ts +1 -1
- package/src/utils.ts +64 -15
- package/tsconfig.esm.json +2 -1
@@ -1,34 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.filterEndJP = exports.filterStartJP = exports.isFirefox = exports.splitTextToSize = exports.calculateDynamicFontSize = exports.getSplittedLines = exports.getFontKitFont = exports.widthOfTextAtSize = exports.heightOfFontAtSize = exports.getFontDescentInPt = exports.getBrowserVerticalFontAdjustments = void 0;
|
27
|
-
const fontkit = __importStar(require("fontkit"));
|
28
|
-
const common_1 = require("@pdfme/common");
|
29
|
-
const buffer_1 = require("buffer");
|
30
|
-
const constants_js_1 = require("./constants.js");
|
31
|
-
const getBrowserVerticalFontAdjustments = (fontKitFont, fontSize, lineHeight, verticalAlignment) => {
|
1
|
+
import * as fontkit from 'fontkit';
|
2
|
+
import { b64toUint8Array, mm2pt, pt2mm, pt2px, getFallbackFontName, getDefaultFont, DEFAULT_FONT_NAME, } from '@pdfme/common';
|
3
|
+
import { Buffer } from 'buffer';
|
4
|
+
import { DEFAULT_FONT_SIZE, DEFAULT_CHARACTER_SPACING, DEFAULT_LINE_HEIGHT, FONT_SIZE_ADJUSTMENT, DEFAULT_DYNAMIC_FIT, DYNAMIC_FIT_HORIZONTAL, DYNAMIC_FIT_VERTICAL, VERTICAL_ALIGN_TOP, LINE_END_FORBIDDEN_CHARS, LINE_START_FORBIDDEN_CHARS, } from './constants.js';
|
5
|
+
export const getBrowserVerticalFontAdjustments = (fontKitFont, fontSize, lineHeight, verticalAlignment) => {
|
32
6
|
const { ascent, descent, unitsPerEm } = fontKitFont;
|
33
7
|
// Fonts have a designed line height that the browser renders when using `line-height: normal`
|
34
8
|
const fontBaseLineHeight = (ascent - descent) / unitsPerEm;
|
@@ -38,8 +12,8 @@ const getBrowserVerticalFontAdjustments = (fontKitFont, fontSize, lineHeight, ve
|
|
38
12
|
// Browsers middle the font within this height, so we only need half of it to apply to the top.
|
39
13
|
// This means the font renders a bit lower in the browser, but achieves PDF alignment
|
40
14
|
const topAdjustment = (fontBaseLineHeight * fontSize - fontSize) / 2;
|
41
|
-
if (verticalAlignment ===
|
42
|
-
return { topAdj:
|
15
|
+
if (verticalAlignment === VERTICAL_ALIGN_TOP) {
|
16
|
+
return { topAdj: pt2px(topAdjustment), bottomAdj: 0 };
|
43
17
|
}
|
44
18
|
// For vertical alignment bottom and middle
|
45
19
|
// When browsers render text in a non-form element (such as a <div>), some of the text may be
|
@@ -55,15 +29,13 @@ const getBrowserVerticalFontAdjustments = (fontKitFont, fontSize, lineHeight, ve
|
|
55
29
|
if (lineHeight < fontBaseLineHeight) {
|
56
30
|
bottomAdjustment = ((fontBaseLineHeight - lineHeight) * fontSize) / 2;
|
57
31
|
}
|
58
|
-
return { topAdj: 0, bottomAdj:
|
32
|
+
return { topAdj: 0, bottomAdj: pt2px(bottomAdjustment) };
|
59
33
|
};
|
60
|
-
|
61
|
-
const getFontDescentInPt = (fontKitFont, fontSize) => {
|
34
|
+
export const getFontDescentInPt = (fontKitFont, fontSize) => {
|
62
35
|
const { descent, unitsPerEm } = fontKitFont;
|
63
36
|
return (descent / unitsPerEm) * fontSize;
|
64
37
|
};
|
65
|
-
|
66
|
-
const heightOfFontAtSize = (fontKitFont, fontSize) => {
|
38
|
+
export const heightOfFontAtSize = (fontKitFont, fontSize) => {
|
67
39
|
const { ascent, descent, bbox, unitsPerEm } = fontKitFont;
|
68
40
|
const scale = 1000 / unitsPerEm;
|
69
41
|
const yTop = (ascent || bbox.maxY) * scale;
|
@@ -72,44 +44,41 @@ const heightOfFontAtSize = (fontKitFont, fontSize) => {
|
|
72
44
|
height -= Math.abs(descent * scale) || 0;
|
73
45
|
return (height / 1000) * fontSize;
|
74
46
|
};
|
75
|
-
exports.heightOfFontAtSize = heightOfFontAtSize;
|
76
47
|
const calculateCharacterSpacing = (textContent, textCharacterSpacing) => {
|
77
48
|
return (textContent.length - 1) * textCharacterSpacing;
|
78
49
|
};
|
79
|
-
const widthOfTextAtSize = (text, fontKitFont, fontSize, characterSpacing) => {
|
50
|
+
export const widthOfTextAtSize = (text, fontKitFont, fontSize, characterSpacing) => {
|
80
51
|
const { glyphs } = fontKitFont.layout(text);
|
81
52
|
const scale = 1000 / fontKitFont.unitsPerEm;
|
82
53
|
const standardWidth = glyphs.reduce((totalWidth, glyph) => totalWidth + glyph.advanceWidth * scale, 0) *
|
83
54
|
(fontSize / 1000);
|
84
55
|
return standardWidth + calculateCharacterSpacing(text, characterSpacing);
|
85
56
|
};
|
86
|
-
exports.widthOfTextAtSize = widthOfTextAtSize;
|
87
57
|
const getFallbackFont = (font) => {
|
88
|
-
const fallbackFontName =
|
58
|
+
const fallbackFontName = getFallbackFontName(font);
|
89
59
|
return font[fallbackFontName];
|
90
60
|
};
|
91
61
|
const getCacheKey = (fontName) => `getFontKitFont-${fontName}`;
|
92
|
-
const getFontKitFont = async (fontName, font, _cache) => {
|
93
|
-
const fntNm = fontName ||
|
62
|
+
export const getFontKitFont = async (fontName, font, _cache) => {
|
63
|
+
const fntNm = fontName || getFallbackFontName(font);
|
94
64
|
const cacheKey = getCacheKey(fntNm);
|
95
65
|
if (_cache.has(cacheKey)) {
|
96
66
|
return _cache.get(cacheKey);
|
97
67
|
}
|
98
|
-
const currentFont = font[fntNm] || getFallbackFont(font) ||
|
68
|
+
const currentFont = font[fntNm] || getFallbackFont(font) || getDefaultFont()[DEFAULT_FONT_NAME];
|
99
69
|
let fontData = currentFont.data;
|
100
70
|
if (typeof fontData === 'string') {
|
101
71
|
fontData = fontData.startsWith('http')
|
102
72
|
? await fetch(fontData).then((res) => res.arrayBuffer())
|
103
|
-
:
|
73
|
+
: b64toUint8Array(fontData);
|
104
74
|
}
|
105
|
-
const fontKitFont = fontkit.create(fontData instanceof
|
75
|
+
const fontKitFont = fontkit.create(fontData instanceof Buffer ? fontData : Buffer.from(fontData));
|
106
76
|
_cache.set(cacheKey, fontKitFont);
|
107
77
|
return fontKitFont;
|
108
78
|
};
|
109
|
-
exports.getFontKitFont = getFontKitFont;
|
110
79
|
const isTextExceedingBoxWidth = (text, calcValues) => {
|
111
80
|
const { font, fontSize, characterSpacing, boxWidthInPt } = calcValues;
|
112
|
-
const textWidth =
|
81
|
+
const textWidth = widthOfTextAtSize(text, font, fontSize, characterSpacing);
|
113
82
|
return textWidth > boxWidthInPt;
|
114
83
|
};
|
115
84
|
/**
|
@@ -162,7 +131,7 @@ const getSplitPosition = (textLine, calcValues) => {
|
|
162
131
|
* Recursively splits the line at getSplitPosition.
|
163
132
|
* If there is some leftover, split the rest again in the same manner.
|
164
133
|
*/
|
165
|
-
const getSplittedLines = (textLine, calcValues) => {
|
134
|
+
export const getSplittedLines = (textLine, calcValues) => {
|
166
135
|
const splitPos = getSplitPosition(textLine, calcValues);
|
167
136
|
const splittedLine = textLine.substring(0, splitPos).trimEnd();
|
168
137
|
const rest = textLine.substring(splitPos).trimStart();
|
@@ -175,23 +144,22 @@ const getSplittedLines = (textLine, calcValues) => {
|
|
175
144
|
// end recursion if there is no leftover
|
176
145
|
return [splittedLine];
|
177
146
|
}
|
178
|
-
return [splittedLine, ...
|
147
|
+
return [splittedLine, ...getSplittedLines(rest, calcValues)];
|
179
148
|
};
|
180
|
-
exports.getSplittedLines = getSplittedLines;
|
181
149
|
/**
|
182
150
|
* If using dynamic font size, iteratively increment or decrement the
|
183
151
|
* font size to fit the containing box.
|
184
152
|
* Calculating space usage involves splitting lines where they exceed
|
185
153
|
* the box width based on the proposed size.
|
186
154
|
*/
|
187
|
-
const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFontSize, }) => {
|
188
|
-
const { fontSize: schemaFontSize, dynamicFontSize: dynamicFontSizeSetting, characterSpacing: schemaCharacterSpacing, width: boxWidth, height: boxHeight, lineHeight =
|
189
|
-
const fontSize = startingFontSize || schemaFontSize ||
|
155
|
+
export const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFontSize, }) => {
|
156
|
+
const { fontSize: schemaFontSize, dynamicFontSize: dynamicFontSizeSetting, characterSpacing: schemaCharacterSpacing, width: boxWidth, height: boxHeight, lineHeight = DEFAULT_LINE_HEIGHT, } = textSchema;
|
157
|
+
const fontSize = startingFontSize || schemaFontSize || DEFAULT_FONT_SIZE;
|
190
158
|
if (!dynamicFontSizeSetting)
|
191
159
|
return fontSize;
|
192
160
|
if (dynamicFontSizeSetting.max < dynamicFontSizeSetting.min)
|
193
161
|
return fontSize;
|
194
|
-
const characterSpacing = schemaCharacterSpacing ??
|
162
|
+
const characterSpacing = schemaCharacterSpacing ?? DEFAULT_CHARACTER_SPACING;
|
195
163
|
const paragraphs = value.split('\n');
|
196
164
|
let dynamicFontSize = fontSize;
|
197
165
|
if (dynamicFontSize < dynamicFontSizeSetting.min) {
|
@@ -200,14 +168,14 @@ const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFont
|
|
200
168
|
else if (dynamicFontSize > dynamicFontSizeSetting.max) {
|
201
169
|
dynamicFontSize = dynamicFontSizeSetting.max;
|
202
170
|
}
|
203
|
-
const dynamicFontFit = dynamicFontSizeSetting.fit ??
|
171
|
+
const dynamicFontFit = dynamicFontSizeSetting.fit ?? DEFAULT_DYNAMIC_FIT;
|
204
172
|
const calculateConstraints = (size) => {
|
205
173
|
let totalWidthInMm = 0;
|
206
174
|
let totalHeightInMm = 0;
|
207
|
-
const boxWidthInPt =
|
208
|
-
const firstLineTextHeight =
|
209
|
-
const firstLineHeightInMm =
|
210
|
-
const otherRowHeightInMm =
|
175
|
+
const boxWidthInPt = mm2pt(boxWidth);
|
176
|
+
const firstLineTextHeight = heightOfFontAtSize(fontKitFont, size);
|
177
|
+
const firstLineHeightInMm = pt2mm(firstLineTextHeight * lineHeight);
|
178
|
+
const otherRowHeightInMm = pt2mm(size * lineHeight);
|
211
179
|
paragraphs.forEach((paragraph, paraIndex) => {
|
212
180
|
const lines = getSplittedLinesBySegmenter(paragraph, {
|
213
181
|
font: fontKitFont,
|
@@ -216,10 +184,10 @@ const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFont
|
|
216
184
|
boxWidthInPt,
|
217
185
|
});
|
218
186
|
lines.forEach((line, lineIndex) => {
|
219
|
-
if (dynamicFontFit ===
|
187
|
+
if (dynamicFontFit === DYNAMIC_FIT_VERTICAL) {
|
220
188
|
// For vertical fit we want to consider the width of text lines where we detect a split
|
221
|
-
const textWidth =
|
222
|
-
const textWidthInMm =
|
189
|
+
const textWidth = widthOfTextAtSize(line.replace('\n', ''), fontKitFont, size, characterSpacing);
|
190
|
+
const textWidthInMm = pt2mm(textWidth);
|
223
191
|
totalWidthInMm = Math.max(totalWidthInMm, textWidthInMm);
|
224
192
|
}
|
225
193
|
if (paraIndex + lineIndex === 0) {
|
@@ -229,10 +197,10 @@ const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFont
|
|
229
197
|
totalHeightInMm += otherRowHeightInMm;
|
230
198
|
}
|
231
199
|
});
|
232
|
-
if (dynamicFontFit ===
|
200
|
+
if (dynamicFontFit === DYNAMIC_FIT_HORIZONTAL) {
|
233
201
|
// For horizontal fit we want to consider the line's width 'unsplit'
|
234
|
-
const textWidth =
|
235
|
-
const textWidthInMm =
|
202
|
+
const textWidth = widthOfTextAtSize(paragraph, fontKitFont, size, characterSpacing);
|
203
|
+
const textWidthInMm = pt2mm(textWidth);
|
236
204
|
totalWidthInMm = Math.max(totalWidthInMm, textWidthInMm);
|
237
205
|
}
|
238
206
|
});
|
@@ -242,7 +210,7 @@ const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFont
|
|
242
210
|
if (dynamicFontSize >= dynamicFontSizeSetting.max) {
|
243
211
|
return false;
|
244
212
|
}
|
245
|
-
if (dynamicFontFit ===
|
213
|
+
if (dynamicFontFit === DYNAMIC_FIT_HORIZONTAL) {
|
246
214
|
return totalWidthInMm < boxWidth;
|
247
215
|
}
|
248
216
|
return totalHeightInMm < boxHeight;
|
@@ -256,26 +224,25 @@ const calculateDynamicFontSize = ({ textSchema, fontKitFont, value, startingFont
|
|
256
224
|
let { totalWidthInMm, totalHeightInMm } = calculateConstraints(dynamicFontSize);
|
257
225
|
// Attempt to increase the font size up to desired fit
|
258
226
|
while (shouldFontGrowToFit(totalWidthInMm, totalHeightInMm)) {
|
259
|
-
dynamicFontSize +=
|
227
|
+
dynamicFontSize += FONT_SIZE_ADJUSTMENT;
|
260
228
|
const { totalWidthInMm: newWidth, totalHeightInMm: newHeight } = calculateConstraints(dynamicFontSize);
|
261
229
|
if (newHeight < boxHeight) {
|
262
230
|
totalWidthInMm = newWidth;
|
263
231
|
totalHeightInMm = newHeight;
|
264
232
|
}
|
265
233
|
else {
|
266
|
-
dynamicFontSize -=
|
234
|
+
dynamicFontSize -= FONT_SIZE_ADJUSTMENT;
|
267
235
|
break;
|
268
236
|
}
|
269
237
|
}
|
270
238
|
// Attempt to decrease the font size down to desired fit
|
271
239
|
while (shouldFontShrinkToFit(totalWidthInMm, totalHeightInMm)) {
|
272
|
-
dynamicFontSize -=
|
240
|
+
dynamicFontSize -= FONT_SIZE_ADJUSTMENT;
|
273
241
|
({ totalWidthInMm, totalHeightInMm } = calculateConstraints(dynamicFontSize));
|
274
242
|
}
|
275
243
|
return dynamicFontSize;
|
276
244
|
};
|
277
|
-
|
278
|
-
const splitTextToSize = (arg) => {
|
245
|
+
export const splitTextToSize = (arg) => {
|
279
246
|
const { value, characterSpacing, fontSize, fontKitFont, boxWidthInPt } = arg;
|
280
247
|
const fontWidthCalcValues = {
|
281
248
|
font: fontKitFont,
|
@@ -289,9 +256,7 @@ const splitTextToSize = (arg) => {
|
|
289
256
|
});
|
290
257
|
return lines;
|
291
258
|
};
|
292
|
-
|
293
|
-
const isFirefox = () => navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
|
294
|
-
exports.isFirefox = isFirefox;
|
259
|
+
export const isFirefox = () => navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
|
295
260
|
const getSplittedLinesBySegmenter = (line, calcValues) => {
|
296
261
|
// nothing to process but need to keep this for new lines.
|
297
262
|
if (line.trim() === '') {
|
@@ -308,7 +273,7 @@ const getSplittedLinesBySegmenter = (line, calcValues) => {
|
|
308
273
|
if (chunk.done)
|
309
274
|
break;
|
310
275
|
const segment = chunk.value.segment;
|
311
|
-
const textWidth =
|
276
|
+
const textWidth = widthOfTextAtSize(segment, font, fontSize, characterSpacing);
|
312
277
|
if (currentTextSize + textWidth <= boxWidthInPt) {
|
313
278
|
// the size of boxWidth is large enough to add the segment
|
314
279
|
if (lines[lineCounter]) {
|
@@ -334,7 +299,7 @@ const getSplittedLinesBySegmenter = (line, calcValues) => {
|
|
334
299
|
else {
|
335
300
|
// the segment is too large to fit in the boxWidth, we wrap the segment
|
336
301
|
for (const char of segment) {
|
337
|
-
const size =
|
302
|
+
const size = widthOfTextAtSize(char, font, fontSize, characterSpacing);
|
338
303
|
if (currentTextSize + size <= boxWidthInPt) {
|
339
304
|
if (lines[lineCounter]) {
|
340
305
|
lines[lineCounter] += char;
|
@@ -353,7 +318,7 @@ const getSplittedLinesBySegmenter = (line, calcValues) => {
|
|
353
318
|
}
|
354
319
|
}
|
355
320
|
if (lines.some(containsJapanese)) {
|
356
|
-
return adjustEndOfLine(
|
321
|
+
return adjustEndOfLine(filterEndJP(filterStartJP(lines)));
|
357
322
|
}
|
358
323
|
else {
|
359
324
|
return adjustEndOfLine(lines);
|
@@ -379,7 +344,7 @@ function containsJapanese(text) {
|
|
379
344
|
// https://www.morisawa.co.jp/blogs/MVP/8760
|
380
345
|
//
|
381
346
|
// 行頭禁則
|
382
|
-
const filterStartJP = (lines) => {
|
347
|
+
export const filterStartJP = (lines) => {
|
383
348
|
const filtered = [];
|
384
349
|
let charToAppend = null;
|
385
350
|
lines
|
@@ -391,7 +356,7 @@ const filterStartJP = (lines) => {
|
|
391
356
|
}
|
392
357
|
else {
|
393
358
|
const charAtStart = line.charAt(0);
|
394
|
-
if (
|
359
|
+
if (LINE_START_FORBIDDEN_CHARS.includes(charAtStart)) {
|
395
360
|
if (line.trim().length === 1) {
|
396
361
|
filtered.push(line);
|
397
362
|
charToAppend = null;
|
@@ -424,9 +389,8 @@ const filterStartJP = (lines) => {
|
|
424
389
|
return filtered.reverse();
|
425
390
|
}
|
426
391
|
};
|
427
|
-
exports.filterStartJP = filterStartJP;
|
428
392
|
// 行末禁則
|
429
|
-
const filterEndJP = (lines) => {
|
393
|
+
export const filterEndJP = (lines) => {
|
430
394
|
const filtered = [];
|
431
395
|
let charToPrepend = null;
|
432
396
|
lines.forEach((line) => {
|
@@ -435,7 +399,7 @@ const filterEndJP = (lines) => {
|
|
435
399
|
}
|
436
400
|
else {
|
437
401
|
const chartAtEnd = line.slice(-1);
|
438
|
-
if (
|
402
|
+
if (LINE_END_FORBIDDEN_CHARS.includes(chartAtEnd)) {
|
439
403
|
if (line.trim().length === 1) {
|
440
404
|
filtered.push(line);
|
441
405
|
charToPrepend = null;
|
@@ -468,5 +432,4 @@ const filterEndJP = (lines) => {
|
|
468
432
|
return filtered;
|
469
433
|
}
|
470
434
|
};
|
471
|
-
exports.filterEndJP = filterEndJP;
|
472
435
|
//# sourceMappingURL=helper.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../src/text/helper.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../src/text/helper.ts"],"names":[],"mappings":"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"}
|
@@ -1,16 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
const
|
5
|
-
const
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
exports.TextAlignRightIcon = (0, utils_js_1.createSvgStr)(lucide_1.AlignRight);
|
11
|
-
exports.TextAlignJustifyIcon = (0, utils_js_1.createSvgStr)(lucide_1.AlignJustify);
|
12
|
-
exports.TextVerticalAlignTopIcon = (0, utils_js_1.createSvgStr)(lucide_1.ArrowUpToLine);
|
1
|
+
import { Strikethrough, Underline, AlignLeft, AlignCenter, AlignRight, ArrowUpToLine, ArrowDownToLine, AlignJustify, } from 'lucide';
|
2
|
+
import { createSvgStr } from '../../utils.js';
|
3
|
+
export const TextStrikethroughIcon = createSvgStr(Strikethrough);
|
4
|
+
export const TextUnderlineIcon = createSvgStr(Underline);
|
5
|
+
export const TextAlignLeftIcon = createSvgStr(AlignLeft);
|
6
|
+
export const TextAlignCenterIcon = createSvgStr(AlignCenter);
|
7
|
+
export const TextAlignRightIcon = createSvgStr(AlignRight);
|
8
|
+
export const TextAlignJustifyIcon = createSvgStr(AlignJustify);
|
9
|
+
export const TextVerticalAlignTopIcon = createSvgStr(ArrowUpToLine);
|
13
10
|
// svg icons are material icons from https://www.xicons.org
|
14
|
-
|
15
|
-
|
11
|
+
export const TextVerticalAlignMiddleIcon = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><path d="M8 19h3v4h2v-4h3l-4-4l-4 4zm8-14h-3V1h-2v4H8l4 4l4-4zM4 11v2h16v-2H4z" fill="currentColor"></path></svg>`;
|
12
|
+
export const TextVerticalAlignBottomIcon = createSvgStr(ArrowDownToLine);
|
16
13
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/text/icons/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/text/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEpE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,0NAA0N,CAAC;AAEtQ,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC"}
|
@@ -1,15 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const lucide_1 = require("lucide");
|
7
|
-
const utils_js_1 = require("../utils.js");
|
1
|
+
import { pdfRender } from './pdfRender.js';
|
2
|
+
import { propPanel } from './propPanel.js';
|
3
|
+
import { uiRender } from './uiRender.js';
|
4
|
+
import { TextCursorInput } from 'lucide';
|
5
|
+
import { createSvgStr } from '../utils.js';
|
8
6
|
const textSchema = {
|
9
|
-
pdf:
|
10
|
-
ui:
|
11
|
-
propPanel
|
12
|
-
icon:
|
7
|
+
pdf: pdfRender,
|
8
|
+
ui: uiRender,
|
9
|
+
propPanel,
|
10
|
+
icon: createSvgStr(TextCursorInput),
|
13
11
|
};
|
14
|
-
|
12
|
+
export default textSchema;
|
15
13
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/text/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/text/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,GAAuB;IACrC,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,QAAQ;IACZ,SAAS;IACT,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC;CACpC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
@@ -1,10 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
const constants_js_1 = require("./constants.js");
|
6
|
-
const helper_js_1 = require("./helper.js");
|
7
|
-
const utils_js_1 = require("../utils.js");
|
1
|
+
import { getDefaultFont, getFallbackFontName, mm2pt, } from '@pdfme/common';
|
2
|
+
import { VERTICAL_ALIGN_TOP, VERTICAL_ALIGN_MIDDLE, VERTICAL_ALIGN_BOTTOM, DEFAULT_FONT_SIZE, DEFAULT_ALIGNMENT, DEFAULT_VERTICAL_ALIGNMENT, DEFAULT_LINE_HEIGHT, DEFAULT_CHARACTER_SPACING, DEFAULT_FONT_COLOR, } from './constants.js';
|
3
|
+
import { calculateDynamicFontSize, heightOfFontAtSize, getFontDescentInPt, getFontKitFont, widthOfTextAtSize, splitTextToSize, } from './helper.js';
|
4
|
+
import { convertForPdfLayoutProps, rotatePoint, hex2PrintingColor } from '../utils.js';
|
8
5
|
const embedAndGetFontObj = async (arg) => {
|
9
6
|
const { pdfDoc, font, _cache } = arg;
|
10
7
|
if (_cache.has(pdfDoc)) {
|
@@ -25,41 +22,41 @@ const embedAndGetFontObj = async (arg) => {
|
|
25
22
|
};
|
26
23
|
const getFontProp = ({ value, fontKitFont, schema, colorType, }) => {
|
27
24
|
const fontSize = schema.dynamicFontSize
|
28
|
-
?
|
29
|
-
: schema.fontSize ??
|
30
|
-
const color =
|
25
|
+
? calculateDynamicFontSize({ textSchema: schema, fontKitFont, value })
|
26
|
+
: schema.fontSize ?? DEFAULT_FONT_SIZE;
|
27
|
+
const color = hex2PrintingColor(schema.fontColor || DEFAULT_FONT_COLOR, colorType);
|
31
28
|
return {
|
32
|
-
alignment: schema.alignment ??
|
33
|
-
verticalAlignment: schema.verticalAlignment ??
|
34
|
-
lineHeight: schema.lineHeight ??
|
35
|
-
characterSpacing: schema.characterSpacing ??
|
29
|
+
alignment: schema.alignment ?? DEFAULT_ALIGNMENT,
|
30
|
+
verticalAlignment: schema.verticalAlignment ?? DEFAULT_VERTICAL_ALIGNMENT,
|
31
|
+
lineHeight: schema.lineHeight ?? DEFAULT_LINE_HEIGHT,
|
32
|
+
characterSpacing: schema.characterSpacing ?? DEFAULT_CHARACTER_SPACING,
|
36
33
|
fontSize,
|
37
34
|
color,
|
38
35
|
};
|
39
36
|
};
|
40
|
-
const pdfRender = async (arg) => {
|
37
|
+
export const pdfRender = async (arg) => {
|
41
38
|
const { value, pdfDoc, pdfLib, page, options, schema, _cache } = arg;
|
42
39
|
if (!value)
|
43
40
|
return;
|
44
|
-
const { font =
|
41
|
+
const { font = getDefaultFont(), colorType } = options;
|
45
42
|
const [pdfFontObj, fontKitFont] = await Promise.all([
|
46
43
|
embedAndGetFontObj({ pdfDoc, font, _cache }),
|
47
|
-
|
44
|
+
getFontKitFont(schema.fontName, font, _cache),
|
48
45
|
]);
|
49
46
|
const fontProp = getFontProp({ value, fontKitFont, schema, colorType });
|
50
47
|
const { fontSize, color, alignment, verticalAlignment, lineHeight, characterSpacing } = fontProp;
|
51
|
-
const fontName = (schema.fontName ? schema.fontName :
|
48
|
+
const fontName = (schema.fontName ? schema.fontName : getFallbackFontName(font));
|
52
49
|
const pdfFontValue = pdfFontObj && pdfFontObj[fontName];
|
53
50
|
const pageHeight = page.getHeight();
|
54
|
-
const { width, height, rotate, position: { x, y }, opacity, } =
|
51
|
+
const { width, height, rotate, position: { x, y }, opacity, } = convertForPdfLayoutProps({ schema, pageHeight, applyRotateTranslate: false });
|
55
52
|
if (schema.backgroundColor) {
|
56
|
-
const color =
|
53
|
+
const color = hex2PrintingColor(schema.backgroundColor, colorType);
|
57
54
|
page.drawRectangle({ x, y, width, height, rotate, color });
|
58
55
|
}
|
59
|
-
const firstLineTextHeight =
|
60
|
-
const descent =
|
56
|
+
const firstLineTextHeight = heightOfFontAtSize(fontKitFont, fontSize);
|
57
|
+
const descent = getFontDescentInPt(fontKitFont, fontSize);
|
61
58
|
const halfLineHeightAdjustment = lineHeight === 0 ? 0 : ((lineHeight - 1) * fontSize) / 2;
|
62
|
-
const lines =
|
59
|
+
const lines = splitTextToSize({
|
63
60
|
value,
|
64
61
|
characterSpacing,
|
65
62
|
fontSize,
|
@@ -68,25 +65,25 @@ const pdfRender = async (arg) => {
|
|
68
65
|
});
|
69
66
|
// Text lines are rendered from the bottom upwards, we need to adjust the position down
|
70
67
|
let yOffset = 0;
|
71
|
-
if (verticalAlignment ===
|
68
|
+
if (verticalAlignment === VERTICAL_ALIGN_TOP) {
|
72
69
|
yOffset = firstLineTextHeight + halfLineHeightAdjustment;
|
73
70
|
}
|
74
71
|
else {
|
75
72
|
const otherLinesHeight = lineHeight * fontSize * (lines.length - 1);
|
76
|
-
if (verticalAlignment ===
|
73
|
+
if (verticalAlignment === VERTICAL_ALIGN_BOTTOM) {
|
77
74
|
yOffset = height - otherLinesHeight + descent - halfLineHeightAdjustment;
|
78
75
|
}
|
79
|
-
else if (verticalAlignment ===
|
76
|
+
else if (verticalAlignment === VERTICAL_ALIGN_MIDDLE) {
|
80
77
|
yOffset =
|
81
78
|
(height - otherLinesHeight - firstLineTextHeight + descent) / 2 + firstLineTextHeight;
|
82
79
|
}
|
83
80
|
}
|
84
|
-
const pivotPoint = { x: x + width / 2, y: pageHeight -
|
81
|
+
const pivotPoint = { x: x + width / 2, y: pageHeight - mm2pt(schema.position.y) - height / 2 };
|
85
82
|
const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
86
83
|
lines.forEach((line, rowIndex) => {
|
87
84
|
const trimmed = line.replace('\n', '');
|
88
|
-
const textWidth =
|
89
|
-
const textHeight =
|
85
|
+
const textWidth = widthOfTextAtSize(trimmed, fontKitFont, fontSize, characterSpacing);
|
86
|
+
const textHeight = heightOfFontAtSize(fontKitFont, fontSize);
|
90
87
|
const rowYOffset = lineHeight * fontSize * rowIndex;
|
91
88
|
// Adobe Acrobat Reader shows an error if `drawText` is called with an empty text
|
92
89
|
if (line === '') {
|
@@ -100,14 +97,14 @@ const pdfRender = async (arg) => {
|
|
100
97
|
else if (alignment === 'right') {
|
101
98
|
xLine += width - textWidth;
|
102
99
|
}
|
103
|
-
let yLine = pageHeight -
|
100
|
+
let yLine = pageHeight - mm2pt(schema.position.y) - yOffset - rowYOffset;
|
104
101
|
// draw strikethrough
|
105
102
|
if (schema.strikethrough && textWidth > 0) {
|
106
103
|
const _x = xLine + textWidth + 1;
|
107
104
|
const _y = yLine + textHeight / 3;
|
108
105
|
page.drawLine({
|
109
|
-
start:
|
110
|
-
end:
|
106
|
+
start: rotatePoint({ x: xLine, y: _y }, pivotPoint, rotate.angle),
|
107
|
+
end: rotatePoint({ x: _x, y: _y }, pivotPoint, rotate.angle),
|
111
108
|
thickness: (1 / 12) * fontSize,
|
112
109
|
color: color,
|
113
110
|
opacity,
|
@@ -118,8 +115,8 @@ const pdfRender = async (arg) => {
|
|
118
115
|
const _x = xLine + textWidth + 1;
|
119
116
|
const _y = yLine - textHeight / 12;
|
120
117
|
page.drawLine({
|
121
|
-
start:
|
122
|
-
end:
|
118
|
+
start: rotatePoint({ x: xLine, y: _y }, pivotPoint, rotate.angle),
|
119
|
+
end: rotatePoint({ x: _x, y: _y }, pivotPoint, rotate.angle),
|
123
120
|
thickness: (1 / 12) * fontSize,
|
124
121
|
color: color,
|
125
122
|
opacity,
|
@@ -128,7 +125,7 @@ const pdfRender = async (arg) => {
|
|
128
125
|
if (rotate.angle !== 0) {
|
129
126
|
// As we draw each line individually from different points, we must translate each lines position
|
130
127
|
// relative to the UI rotation pivot point. see comments in convertForPdfLayoutProps() for more info.
|
131
|
-
const rotatedPoint =
|
128
|
+
const rotatedPoint = rotatePoint({ x: xLine, y: yLine }, pivotPoint, rotate.angle);
|
132
129
|
xLine = rotatedPoint.x;
|
133
130
|
yLine = rotatedPoint.y;
|
134
131
|
}
|
@@ -152,5 +149,4 @@ const pdfRender = async (arg) => {
|
|
152
149
|
});
|
153
150
|
});
|
154
151
|
};
|
155
|
-
exports.pdfRender = pdfRender;
|
156
152
|
//# sourceMappingURL=pdfRender.js.map
|