Xamarin.Forms 无法在流中转换 TTF 文件

Xamarin.Forms can't convert TTF file in stream

我正在 Syncfusion 的帮助下开发 Xamarin.Forms 应用程序,并希望在 PDF 中添加西里尔文支持 drawing.I 下载 ArialUnicodeMS.tff 在资源文件夹的共享项目中添加了文件并添加了构建操作 Embedded Resource 并且还添加了 [assembly: ExportFont("ArialUnicodeMS.ttf", Alias = "ArialUni")]AssemblyInfo.cs 中。但是 Syncfusion Pdf Drawing 想要通过 Stream.

访问 TTF 文件

这是我的代码:

var assembly = IntrospectionExtensions.GetTypeInfo(typeof(EmbeddedFont)).Assembly;
Stream stream = assembly.GetManifestResourceStream("MyAppName.ArialUnicodeMS.ttf");
PdfFont font = new PdfTrueTypeFont(stream, 14);

但我的字符串总是 null。我哪里错了?

资源丢失。

很可能是以下 3 个问题之一:

  • 姓名 "MyAppName.ArialUnicodeMS.ttf" 有错字。
  • 资源未嵌入 typeof(EmbeddedFont)).Assembly 程序集中。
  • 您没有将参数 Build Action 设置为 Embedded Resource。这是 EmbeddedFont 项目的一部分,作用于 ArialUnicodeMS.ttf 资源。

要验证哪些名称可用,您可以使用:

string resourceNames = assembly.GetManifestResourceNames();

您可以使用下面的代码从嵌入式资源中获取流。

   var assembly = Assembly.GetExecutingAssembly();
        var resourceName = "App28.Trashtalk.ttf";
        Stream stream = assembly.GetManifestResourceStream(resourceName);