UNPKG

sketch-json-parse

Version:

sketch-json解析

23 lines (22 loc) 849 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uniqueId = void 0; exports.getActualWidthOfChars = getActualWidthOfChars; const uniqueId = () => { return Math.random().toString(32).substr(2, 8); }; exports.uniqueId = uniqueId; // 通过canvas获取文字宽度 function getActualWidthOfChars(text, options = {}) { if (!document) { return 0; } const { fontSize = 14, fontFamily = "Microsoft YaHei", fontWeight = "normal", } = options; const canvas = document.createElement("canvas"); const ctx = canvas.getContext("2d"); ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`; const metrics = ctx.measureText(text); const actual = Math.abs(metrics.actualBoundingBoxLeft) + Math.abs(metrics.actualBoundingBoxRight); return Math.max(metrics.width, actual); }