sketch-json-parse
Version:
sketch-json解析
23 lines (22 loc) • 849 B
JavaScript
;
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);
}