转换SVG图像时不显示字体

时间:2016-10-26 11:33:38

标签: c# svg png

我正在使用this package将svg图像转换为png。 我的代码正在使用它看起来像这样:

SvgDocument svgDoc = SvgDocument.FromSvg<SvgDocument>(decoded);

foreach (var item in svgDoc.Children)
{
      SetFonts(item);
}

Bitmap image = svgDoc.Draw();

有一个显示字体的已知issue,所以我尝试使用此方法:

 public void SetFonts(SvgElement parent)
    {
        if (parent.HasChildren())
        {
            foreach (SvgElement child in parent.Children)
            {
                SetFonts(child);
            }
        }

        try
        {
            SvgText svgText = (SvgText)parent;
            svgText.FontFamily = "Arial";
            svgText.FontSize = 12;
            svgText.Font = "Arial";
        }
        catch
        {
        }
    }

它只找到按日文字字符串,但仍然看不到轴的字幕,可能是问题?

svg文件是here

1 个答案:

答案 0 :(得分:0)

您需要将CSS放入defs部分。类似的东西:

<defs>
  <style type="text/css">
    @font-face {
      font-family: Delicious;
      src: url('../fonts/font.woff');
    }
  </style>
</defs>