Есть ли возможность создать шрифт из URI? Что-то вроде:
// c# code
string fontUri = "https://www.manyfonts.com/VAGRoundedStd-Thin.ttf";
BaseFont myfont = BaseFont.CreateFont(fontUri, BaseFont.CP1252, BaseFont.EMBEDDED);
// or
Font font = FontFactory.GetFont(fontUri, BaseFont.CP1252,false, 9);
Я тоже пробовал в двоичном
public static Font GetFont()
{
string fontUri = Config.FONT_URI;
Console.WriteLine(fontUri);
byte[] fontBinary = new WebClient().DownloadData(fontUri);
BaseFont bf = BaseFont.CreateFont(
"VAGRoundedStd-Thin.ttf",
BaseFont.WINANSI,
BaseFont.EMBEDDED,
false,
fontBinary,
null
);
return new Font(bf, 12, Font.NORMAL, Colors.PINK);
}
Теперь я получаю:
Unhandled Exception: System.NotSupportedException: No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
at System.Text.Encoding.GetEncoding(Int32 codepage)
at iTextSharp.text.pdf.TrueTypeFont.ReadStandardString(Int32 length)
at iTextSharp.text.pdf.TrueTypeFont.Process(Byte[] ttfAfm, Boolean preload)
at iTextSharp.text.pdf.TrueTypeFont..ctor(String ttFile, String enc, Boolean emb, Byte[] ttfAfm, Boolean justNames, Boolean forceRead)
Мой код находится в лямбда-функции и не может получить доступ к файловой системе. Может быть, загрузка TTF в память, а затем как-то в iTextSharp? Любой обходной путь приветствуется.