首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字体文件添加到C# WPF中嵌入式字体的Stimulsoft报表中

如何将字体文件添加到C# WPF中嵌入式字体的Stimulsoft报表中
EN

Stack Overflow用户
提问于 2021-09-11 06:21:14
回答 1查看 540关注 0票数 0

我使用C# WPF和Stimulsoft

当需要显示时,我想发送我的字体文件嵌入到我的报告中的路径

我在(我的WPF项目)中嵌入了字体,我使用它的方式如下:

XAML中的 :

代码语言:javascript
运行
复制
<Label x:Name="preloader" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Content="Loading . . ." Margin="319,178,48,34" FontFamily="/WpfApp5;component/FNT/#B Titr" FontSize="48" Background="White"/>

字体是从我的项目中的字体文件夹中嵌入的:

因为我的报告是用刺激性软件生成的,所以我不能嵌入字体,但是我可以发送字体enter link description here的路径。

通过这个,我可以向它发送我的字体路径

为此,我尝试了两种方式

C#代码:

1-:

代码语言:javascript
运行
复制
StiFontCollection.AddFontFile(@"pack://application:,,,/FNT/#B Titr");

本例将显示此错误:

System.NotSupportedException:“给定路径的格式不支持。”

2-:

代码语言:javascript
运行
复制
var fntpath = Assembly.GetEntryAssembly().GetManifestResourceStream("WpfApp5.FNT.BTITRBD.TTF");
            StiFontCollection.AddFontFile(fntpath.ToString());

在这个fntpath.ToString()中为null!

怎么做?

请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-13 10:03:55

AddFontFile方法期望磁盘上的物理文件的路径。您不能传入pack: URI,因为它不理解这种格式。您不能只在一个.ToString()上调用Stream,因为这不会产生任何有意义的信息。

您需要将字体文件解压缩到临时文件,并将该文件的路径传递给AddFontFile方法。

代码语言:javascript
运行
复制
string tempPath = Path.GetTempPath();
string fileName = "WpfApp5.FNT.BTITRBD.TTF";
string fontPath = Path.Combine(tempPath, fileName);
if (!File.Exists(fontPath))
{
    using (var stream = Assembly.GetEntryAssembly().GetManifestResourceStream(fileName))
    using (var output = File.Create(fontPath))
    {
        stream.CopyTo(output);
    }
}

StiFontCollection.AddFontFile(fontPath);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69140558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档