如何解决xamarin.android中资源目录的路径
我需要我的资源目录的路径来访问其中的fonts文件夹,就像下面的代码一样:
PdfFont russian = PdfFontFactory.createFont(
"src/main/resources/fonts/FreeSans.ttf","CP1251",true);
,但在Xamarin.android中。我尝试了以下方法:
string uri = "android.resource://" + this.PackageName + "/font/ARIAL.TTF";
PdfFont russian = PdfFontFactory.CreateFont(
uri,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项目不同。
如果要将字体文件保存在项目中以访问文件,请尝试将文件保存在 Asset 文件夹中。为此文件设置 Build Action 到 AndroidAsset 。
string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("read_asset.txt")))
{
content = sr.ReadToEnd();
}
查看教程:
更新
我将添加我的代码,该代码无效。没有执行代码
似乎您忘记添加.Show()
之类的Toast.MakeText(this,"done",ToastLength.Long).Show()
代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。