迭代程序中嵌入的ttf字体无法加载到Linux机器中

时间:2014-08-08 11:04:11

标签: linux pdf fonts pdf-generation itext

在我的程序中,我使用类似的东西 -

String arielunicodePath = config_Folder_Path+File.separatorChar
        +"resources"+File.separatorChar + "ARIALUNI.ttf";
arielunicodebase =  BaseFont.createFont(arielunicodePath, BaseFont.WINANSI,  BaseFont.EMBEDDED);

我已将ARIALUNI.ttf文件放在项目中的正确位置。

它在我的Windows机器上正常工作。但是当我将它部署到我们的Linux服务器时,上面的字体创建命令失败,出现以下错误 -

java.io.IOException: /x/programs/reporttransformationmsgd/config/resources/ARIALUNI.ttf not found as file or resource.

我确认该文件在程序正在寻找的确切位置可用。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

在Windows上进行开发并在Linux上进行部署时,有时会忘记Linux通常以区分大小写的方式处理文件名,而Windows则不然。

在手头的情况下,程序寻找的文件名是ARIALUNI.ttf,而实际的字体文件(就像在Windows字体文件夹中一样)被命名为ARIALUNI.TTF

在Windows上测试小写扩展意味着没有问题,而在Linux上它导致找不到文件或资源 IOException