diff --git a/packages/layout/src/svg/layoutText.js b/packages/layout/src/svg/layoutText.js index e29347561..f93d75b57 100644 --- a/packages/layout/src/svg/layoutText.js +++ b/packages/layout/src/svg/layoutText.js @@ -45,10 +45,16 @@ const getFragments = (fontStore, instance) => { const _textDecoration = instance.props.textDecoration; - const obj = fontStore - ? fontStore.getFont({ fontFamily, fontWeight, fontStyle }) - : null; - const font = obj ? obj.data : fontFamily; + const fontFamilies = + typeof fontFamily === 'string' ? [fontFamily] : [...(fontFamily || [])]; + + const font = fontFamilies.map((fontFamilyName) => { + if (typeof fontFamilyName !== 'string') return fontFamilyName; + + const opts = { fontFamily: fontFamilyName, fontWeight, fontStyle }; + const obj = fontStore ? fontStore.getFont(opts) : null; + return obj ? obj.data : fontFamilyName; + }); const attributes = { font, diff --git a/packages/layout/src/text/fontSubstitution.js b/packages/layout/src/text/fontSubstitution.js index 40b8bafc8..3df7236b2 100644 --- a/packages/layout/src/text/fontSubstitution.js +++ b/packages/layout/src/text/fontSubstitution.js @@ -48,6 +48,8 @@ const fontSubstitution = for (let i = 0; i < runs.length; i += 1) { const run = runs[i]; + console.log(run); + const defaultFont = run.attributes.font.map((font) => typeof font === 'string' ? getOrCreateFont(font) : font, ); diff --git a/packages/renderer/tests/svg.test.jsx b/packages/renderer/tests/svg.test.jsx index 464f10d73..75ef5415c 100644 --- a/packages/renderer/tests/svg.test.jsx +++ b/packages/renderer/tests/svg.test.jsx @@ -12,7 +12,7 @@ Font.register({ }); describe('Svg', () => { - test('should render Tspan component', async () => { + test.only('should render Tspan component', async () => { const image = await renderToImage(