Как использовать Unicode шрифты в Verifone VX675
У меня проблема с написанием арабского текста на модели платных поз VeriFone vx675. я пытаюсь эту строку кодов:
int ret=set_font("Tahoma.ttf");
if (ret!=0)
{
printf("con : %d, err: %s\n",ret,strerror(errno));
}
display_at(0,0,"سلام", NO_CLEAR);
но устройство показывает ошибку как
Недействительным аргумент
Кто-нибудь может сказать мне, как я должен решить эту проблему. или как я могу написать текст Unicode на арабском языке в модели Vx675.
Заранее спасибо
1 ответ
Отказ от ответственности: я не работал с Vx675 раньше, и я не пытался использовать арабский шрифт, но я думаю, что это будет работать...
Вы не можете использовать.ttf шрифты на терминалах VeriFone. Вместо этого вам нужно использовать VeriFone "Font Generation Tool" для преобразования.ttf в файл.vft или.fon.
- Запустите "Инструмент создания шрифтов". Если вы установили DTK, он должен появиться в меню "Пуск" в разделе "VeriFone".
- Перейдите в пункт меню "Шрифт" и выберите "Преобразовать шрифт".
- Выберите "Шрифт Windows Unicode"
- Выберите "Арабский" в качестве "Пользовательских шрифтов Unicode". Установите любые другие стили, которые вы хотите.
- Пролистайте остальную часть мастера и сохраните файл шрифта где-нибудь.
- Загрузите этот новый файл шрифта в свой терминал вместе с остальной частью вашей программы (это обычно тот шаг, который я забыл сделать при первом запуске)
Когда вы выполняете свою функцию "display_at", я отмечаю, что вы используете арабский символ (ы) напрямую. У меня нет опыта в том, будет ли это работать или нет, но одну вещь, которую вы можете попробовать, если она не работает, это использовать printf с числовыми смещениями. Я не думаю, что вы захотите сделать это в долгосрочной перспективе, но это может помочь вам начать:
printf("%c%c%c%c%c%c%c%c", 0, 1, 2, 3, 4, 5, 6, 7);