Я делаю отчет в Unity3D с iTextSharp. Когда я запускаю приложение из Unity, он создает PDF-файл и отлично работает. Но когда я создаю приложение на устройстве Android, у меня проблема с созданием шрифта. Вот что я делаю:Unity3D создает iTextSharp PDF в Android
BaseFont bf = BaseFont.CreateFont(System.IO.Path.Combine(Application.streamingAssetsPath, "ADOBEARABIC-BOLD_0.OTF"), BaseFont.IDENTITY_H, false);
Как я уже видел, первым параметром для создания шрифта является путь к шрифту. Мой шрифт находится в папке /Assets/StreamingAssets/
.
Когда я пытаюсь загрузить его с помощью WWW-класса, он может его найти, но когда я даю только путь к создателю, он не будет работать.
Любая идея, что мне делать? Или есть ли другой способ создания шрифта, который поддерживает арабские символы?
EDIT:
Хорошо, я каким-то образом удалось получить к шрифту. Сначала я скопировать шрифт из Assets
в корне APP:
IEnumerator CopyFiles()
{
string fromPath = Application.streamingAssetsPath + "/";
string toPath = Application.persistentDataPath + "/";
string filesNamesToCopy = "ADOBEARABIC-BOLD_0.OTF";
WWW www1 = new WWW(fromPath + filesNamesToCopy);
yield return www1;
File.WriteAllBytes(toPath + filesNamesToCopy , www1.bytes);
}
А потом сделать BASEFONT:
BaseFont bf = BaseFont.CreateFont(System.IO.Path.Combine(Application.persistentDataPath, "ADOBEARABIC-BOLD_0.OTF"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Теперь я получаю новую ошибку, когда пытаются построить на Android устройства:
ArgumentException: Код кодировки 'windows-1252' не поддерживается Параметр: name