首页 > 解决方案 > 是否可以在 SVG 中使用多种自定义字体?

问题描述

我在 SVG 中使用Univers LT 47 Condensed Light字体。在某些元素中使用Univers LT 47 Condensed Bold字体。SVG 渲染正确,但是当我在 PDF 上打印 SVG 时,没有考虑任何字体,并且使用了默认字体(Times)。

后来,我发现通过设置(?)字体提供程序,我可以使用标准字体。

string fontUniverseLT47 = HttpContext.Current.Server.MapPath("fonts/lte50144.ttf"),
fontUniverseLT47Bold = HttpContext.Current.Server.MapPath("fonts/LT.ttf");

FontProvider provider = new FontProvider();
provider.AddFont(FontProgramFactory.CreateFont(fontUniverseLT47));
provider.AddFont(FontProgramFactory.CreateFont(fontUniverseLT47Bold));

SvgConverterProperties props = new SvgConverterProperties();
props.SetCharset("Windows-1252");
props.SetFontProvider(provider);

byte[] byteArray = Encoding.GetEncoding(1252).GetBytes(svg);

using (MemoryStream ms = new MemoryStream(byteArray))
{
    Image image = SvgConverter.ConvertToImage(ms, pdf, props);
    image.SetPageNumber(pageNumber);
    image.SetFixedPosition(llx, lly);
    image.ScaleToFit(width, height);

    doc.Add(image);
}

但现在我想使用无法在 CSS 中设置的粗体字体,字体重量:粗体,因为它是不同的 PdfFont。

有没有办法在 SVG 中使用第二种粗体字体?

标签: svgfontsitextitext7

解决方案


推荐阅读