【发布时间】:2023-03-26 11:01:01
【问题描述】:
我使用 itextsharp 创建了一个 PDF 文档,我需要连接 Assets 文件夹中的字体。 目前,当我将字体放入智能手机的内存中时,一切正常。
System.String ttf = Android.OS.Environment.ExternalStorageDirectory +
"/arial.ttf";
var baseFont = BaseFont.CreateFont(tttt, BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);
var font = new Font(baseFont, Font.DEFAULTSIZE, Font.NORMAL);
doc.Add(new Paragraph(inf1, font));
但可能没有人在智能手机的内存中拥有这些字体:)
我尝试使用以下代码获取 Assets 文件夹的路径:
public static AssetManager Assets { get; private set; }
string ttf;
using (var asset = Assets.Open("arial.ttf"))
{
var fontStream = new MemoryStream();
asset.CopyTo(fontStream);
}
或其他选项:
string content;
using (StreamReader sr = new StreamReader(Assets.Open("arial.ttf")))
{
content = sr.ReadToEnd();
}
但在这些情况下存在一个问题: 你调用的对象是空的... 上线
using (var asset = Assets.Open("arial.ttf"))
和
using (StreamReader sr = new StreamReader(Assets.Open("arial.ttf")))
也许有一些文件夹路径的类比,类似于 Windows 中字体的路径?
Environment.GetFolderPath(Environment.SpecialFolder.Fonts);
或者我可以以某种方式使用生成的字体
Android.Graphics.Typeface tf = Android.Graphics.Typeface.CreateFromAsset(Application.Context.Assets, "arial.ttf");
请告诉我,如何在 PDF 文档中设置必要的字体,或者如何找到将插入 BaseFont 行的字体 ttf 的路径 :)
【问题讨论】:
-
试试“file:///android_asset/fileName”是否是正确的路径
-
@LeoZhu 没有找到这样的路径 :( 也类似
标签: fonts xamarin.android itext android-assets