【问题标题】:VS2017 resource files for fonts? [duplicate]VS2017字体资源文件? [复制]
【发布时间】:2018-09-07 23:20:03
【问题描述】:

我已经尝试过addFontFile from Resources,但对我没有帮助。我也尝试找到有关此主题的其他页面,但无济于事。

我有两个字体文件 (.ttf) 作为资源文件包含在我的 VS2017 项目中。现在我需要加载这些文件(我正在使用 iTextSharp)。我不知道该怎么做。这显然不像

那么简单
font = BaseFont.CreateFont("Resources/OpenSans-Regular.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);

因为这会引发异常。

有人知道如何从 Visual Studio 中读取 .ttf 资源吗?谢谢。

【问题讨论】:

  • “触发异常...” 我看不到异常消息和堆栈跟踪。您是否尝试过使用链接帖子中指出的GetManifestResourceStream()
  • 您是否尝试过链接的 SO 问题中的第二个答案? stackoverflow.com/a/23658552/1291628
  • 有点。我需要的是访问文件。这个问题涉及流。
  • 但是如果它被编译为资源,它就不再是一个文件了
  • 这是一个很好的评论,@BugFinder。但我认为我不能使用流来创建新字体。我可以使用流创建文件,但这将在 Azure 上运行,我怀疑我是否有权写入文件系统。

标签: c# visual-studio-2017 embedded-resource


【解决方案1】:

嗯,我想通了,所以对于任何想要这样做的人,你只需要两行:

byte[] fontRegular = Properties.Resources.OpenSans_Regular;
BaseFont font = BaseFont.CreateFont("OpenSans-Regular.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED, BaseFont.CACHED, fontRegular, null);

这假定 .ttf 文件是您项目中的资源,它被命名为 OpenSans-Regular.ttf。这使您可以使用 iTextSharp 中的字体。享受吧!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多