update at 2026-02-11 19:13:31
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user