2014-11-19 6 views
0

Я делаю отчет в 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

ответ

Смежные вопросы