update at 2026-02-11 19:13:31

This commit is contained in:
douboer
2026-02-11 19:13:31 +08:00
parent 74eebc19db
commit b3add14421
3 changed files with 334 additions and 95 deletions

View File

@@ -78,7 +78,7 @@ async function handleExport(format: ExportFormat) {
}
try {
const { generateSvg } = await import('./utils/svg-builder')
const { renderSvgByApi } = await import('./utils/render-api')
const {
convertSvgToPngBlob,
downloadSvg,
@@ -87,23 +87,28 @@ async function handleExport(format: ExportFormat) {
generatePngFilename,
generateSvgFilename,
} = await import('./utils/download')
const renderByApi = async (fontId: string) => {
return renderSvgByApi({
fontId,
text: inputText,
fontSize: uiStore.fontSize,
fillColor: uiStore.textColor,
letterSpacing: Number(uiStore.letterSpacing) || 0,
maxCharsPerLine: MAX_CHARS_PER_LINE,
})
}
if (selectedItems.length === 1) {
// 单个字体,直接下载 SVG
const item = selectedItems[0]
if (!item?.fontInfo.font) {
alert('选中字体未加载完成,请稍后重试')
const fontId = item?.fontInfo?.id
if (!fontId) {
alert('选中字体信息无效,请重新选择后重试')
return
}
const font = item.fontInfo.font
const svgResult = await generateSvg({
text: inputText,
font,
fontSize: uiStore.fontSize,
fillColor: uiStore.textColor,
letterSpacing: 0
})
const svgResult = await renderByApi(fontId)
if (format === 'svg') {
const filename = generateSvgFilename(inputText, svgResult.fontName)
@@ -122,19 +127,13 @@ async function handleExport(format: ExportFormat) {
for (const item of selectedItems) {
try {
const font = item.fontInfo.font
if (!font) {
console.warn(`字体 ${item.fontInfo.name} 尚未加载,已跳过导出`)
const fontId = item?.fontInfo?.id
if (!fontId) {
console.warn('发现无效字体项,已跳过')
continue
}
const svgResult = await generateSvg({
text: inputText,
font,
fontSize: uiStore.fontSize,
fillColor: uiStore.textColor,
letterSpacing: 0
})
const svgResult = await renderByApi(fontId)
if (format === 'svg') {
const filename = generateSvgFilename(inputText, svgResult.fontName)