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