/* * @Author: LiZhiWei * @Date: 2025-05-14 15:14:03 * @LastEditors: LiZhiWei * @LastEditTime: 2025-05-14 15:59:19 * @Description: */ import { convertPtToPxInContent } from '../utils/style' // 创建文本元素 export function createTextElement (element) { const el = document.createElement('div') if (element.content) { // 转换内容中的pt单位为px单位 const convertedContent = convertPtToPxInContent(element.content) el.innerHTML = convertedContent // 设置文本样式 el.style.width = element.width + 'px' el.style.height = element.height + 'px' el.style.color = element.fontColor || '#000' el.style.fontSize = element.fontSize el.style.fontFamily = element.fontFamily || 'Arial' el.style.textAlign = element.align || 'left' el.style.fontWeight = element.bold ? 'bold' : 'normal' el.style.fontStyle = element.italic ? 'italic' : 'normal' el.style.textDecoration = element.underline ? 'underline' : 'none' el.style.position = 'absolute' el.style.top = element.top + 'px' || '0' el.style.left = element.left + 'px' || '0' el.style.zIndex = element.order el.style.whiteSpace = 'pre-wrap' // 添加垂直对齐支持 el.style.display = 'flex' el.style.flexDirection = 'column' switch (element.vAlign) { case 'up': el.style.justifyContent = 'flex-start' break case 'mid': el.style.justifyContent = 'center' break case 'down': el.style.justifyContent = 'flex-end' break default: el.style.justifyContent = 'flex-start' } // 设置段落间距 el.style.lineHeight = element.lineHeight + 'px' || '1.2' el.style.letterSpacing = element.charSpacing ? `${element.charSpacing}px` : 'normal' } return el }