2

我在 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);

但设备显示错误为

无效的论点

谁能告诉我我应该如何解决这个问题。或者我如何在 Vx675 模型中编写 Unicode 阿拉伯语文本。

提前致谢

4

1 回答 1

4

免责声明:我之前没有使用过 Vx675,也没有尝试过使用阿拉伯字体,但我认为这会起作用......

您不能在 VeriFone 终端上使用 .ttf 字体。相反,您需要使用 VeriFone 的“字体生成工具”.ttf 转换为 .vft 或 .fon 文件。

  1. 启动“字体生成工具”。如果您安装了 DTK,那么它应该在“VeriFone”下的开始菜单中
  2. 转到“字体”菜单项并选择“转换字体”。
  3. 选择“Windows Unicode 字体”
  4. 选择“阿拉伯语”作为“自定义 Unicode 字体”选项。设置您想要的任何其他样式。
  5. 单击向导的其余部分并将字体文件保存在某处。
  6. 将该新字体文件与程序的其余部分一起下载到您的终端(这通常是我第一次运行时忘记执行的步骤)
  7. 当您执行“display_at”功能时,我注意到您正在直接使用阿拉伯字符。我没有关于它是否会工作的经验,但如果它不起作用,你可以尝试的一件事是使用带有数字偏移量的 printf。从长远来看,我认为您不会想要这样做,但它可以帮助您入门:

    printf("%c%c%c%c%c%c%c%c", 0, 1, 2, 3, 4, 5, 6, 7);
    
于 2016-02-23T18:21:50.340 回答