xamarin.android中资源目录的路径

xamarin.android中资源目录的路径,xamarin.android,resources,itext7,Xamarin.android,Resources,Itext7,我需要我的资源目录的路径才能访问其中的字体文件夹,如以下代码所示: PdfFont俄语=PdfFontFactory.createFont( “src/main/resources/font/FreeSans.ttf”、“CP1251”,true); 但是在Xamarin.android中。我尝试了以下方法: string uri=“android.resource://“+this.PackageName+”/font/ARIAL.TTF”; PdfFont俄语=PdfFontFactory

我需要我的资源目录的路径才能访问其中的字体文件夹,如以下代码所示:

PdfFont俄语=PdfFontFactory.createFont(
“src/main/resources/font/FreeSans.ttf”、“CP1251”,true);
但是在Xamarin.android中。我尝试了以下方法:

string uri=“android.resource://“+this.PackageName+”/font/ARIAL.TTF”;
PdfFont俄语=PdfFontFactory.CreateFont(
uri,“CP1251”,true);
但它不起作用。我也试过这个代码:

  var path2 = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
            filePath = System.IO.Path.Combine(path2.ToString(), "myfile4.pdf");
            stream = new FileStream(filePath, FileMode.Create);
            PdfWriter writer = new PdfWriter(stream);
            PdfDocument pdf2 = new iText.Kernel.Pdf.PdfDocument(writer);
            Document document2 = new Document(pdf2, PageSize.A4);
            AssetManager assets = this.Assets;
            string content;
            Stream stream2 = assets.Open("ARIAL.TTF");
            var memorystrm = new MemoryStream();
            stream2.CopyTo(memorystrm);
            byte[] t = memorystrm.ToArray();
            Toast.MakeText(this, t.Length.ToString(), ToastLength.Long);
            if (t != null)
            {
                PdfFont russian = PdfFontFactory.CreateFont(t, "UTF-8", true);
                document2.SetFont(russian);
                Paragraph p = new Paragraph("Hello World! ")
                    .Add(new Text("صباح! ").SetFontSize(14)).Add(new Text("Bonjour le monde! ").SetFontSize(10));
                document2.Add(p);
                document2.Close();
                Toast.MakeText(this, "done", ToastLength.Long);
            }
            else
            {
                Toast.MakeText(this, "error", ToastLength.Long);
            }

未执行任何代码

Xamarin.Android项目的文件夹路径与本机Android项目不同

如果要在项目中保存字体文件以访问该文件,请尝试将文件保存在资产文件夹中。将此文件的生成操作设置为AndroidAsset

string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("read_asset.txt")))
{
    content = sr.ReadToEnd();
}
查看教程:

更新
我将添加我的代码,它不起作用。没有执行任何代码


您似乎忘记添加
.Show()
代码,例如
Toast.MakeText(此“完成”,ToastLength.Long)。Show()

Xamarin.Android项目的文件夹路径与本机Android项目不同。如果要在项目中保存字体文件以访问该文件,请尝试将文件保存在资产文件夹中。将此文件的生成操作设置为AndroidAsset。检查链接如果你已经解决了这个问题,请接受这个解决方案作为答案。这将帮助其他面临类似问题的人。非常感谢,先生。只有一件事,在将字体读取为字节并包括pdf文档的字体后,后者应该读取阿拉伯语单词。但事实并非如此,这可能是字节的问题吗?从搜索结果来看,“段落”似乎不支持阿拉伯语文本。对于此函数,请尝试使用“PdfCalligraph”库执行此操作“PdfCalligraph”由iText 7支持提供,旨在支持更多语言和书写系统。是的,先生,我正在使用“PdfCalligraph”。我参考了这个链接来编写我的代码,从中我开始遇到如何读取字体和将字体放在哪里的问题,但我的pdf仍然没有读取阿拉伯字母。我尝试过类似的方法,我会添加我的代码,它不起作用。没有执行代码您的意思是没有显示“Toast”吗?您似乎忘记添加
.Show()
代码,例如
Toast.MakeText(这个“完成”,ToastLength.Long).Show()
@rana hd如果你已经解决了这个问题,请接受这个解决方案作为答案。这将有利于其他有类似问题的社区成员。