12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * @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
- }
|