Excel中艺术字变形

We reproduced similar error in linux environment. We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): CELLSNET-52693

You can obtain Paid Support services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@Yuxuan
我们研究后发现您的文件可能不是用Microsoft Excel 生成的
因为excel-03在生成艺术字时,所有的文本内容只能是一种字体。如下:
03insert.png (14.1 KB)
而您的xls文件中如“5年级1班”,‘5’和‘1’是Arial字体,其它是宋体,这会导致只有Arial被识别。如图使用excel03编辑该文本被识别为Arial:
excel03_edit.png (17.9 KB)
但是Arial字体实际上是不能显示中文的,所以渲染结果是方框。
因此我们建议您将所有文本的字体设置为系统中存在的可显示中文的字体,该问题就会得到解决。
以下是我们用最新版本在统一字体后Linux环境生成的结果:
源文件 CELLSNET-52693-11.zip (7.1 KB)
结果文件 CELLSNET-52693.zip (17.9 KB)

注意:
因为存在一些细微的修复,请更新至最新版本。

我们期您的反馈。

我无法看到上述的文件结果,能否通过邮箱将文件发送给我,邮箱地址是yuxuan.guo@suwell.cn

@Yuxuan
邮件已发送

使用最新版本预览您提供的源文件,在服务器上还是不能正常显示
服务器为uos+kunpeng920-96C64G,架构是鲲鹏920的cpu-arm64艺术字显示异常.png (32.4 KB)

@Yuxuan
我怀疑是否是没有正确的找到字体导致的。
1、你可以尝试一下直接执行toimage的操作看看结果是否正确,如下
Workbook workbook = new Workbook(“CELLSNET-52693-11.xls”);
workbook.getWorksheets().get(0).getShapes().get(0).toImage(“CELLSNET-52693.png”, new ImageOrPrintOptions());
2、如果结果不正确,请查看以下路径中是否有类似simsun.ttc文件
/usr/share/fonts/
/home/uos/.local/share/fonts/
3、请将找到字体文件的路径按照如下设置之后,再执行步骤1
FontConfigs.setFontFolder(fontPath, false); //放在所有操作之前

在/usr/share/fonts/路径存放了字体文件字体位置.jpg (408.5 KB)

@Yuxuan
你在执行所有操作之前执行了以下代码吗?
注意第二个参数是 true,我上面写错了。
FontConfigs.setFontFolder("/usr/share/fonts/", true);

或许不是没有正确找到字体导致的问题,在部署字体路径一致的情况下,只在鲲鹏920服务器上出现了艺术字显示异常的错误

@Yuxuan
能提供下这个服务器上的java版本的具体信息吗?

1.8版本的 ------------------

@Yuxuan
请将执行 java -version 后的所有输出结果贴给我们。
我们需要比较详细的信息,以方便我们定位问题。

Java版本.png (15.0 KB)

@Yuxuan
请提供这台服务器的java的详细信息,你的截图似乎是一个Windows平台上的java信息。

@Yuxuan

请确认字体文件simsun.ttc是否在服务器的字体目录,提供下带simsun.ttc文件的截图.

Java版本.png (2.8 KB)
字体.png (4.2 KB)

@Yuxuan
我们通过你目前给的信息也并没有发现什么异常。
鉴于你说“只在鲲鹏920服务器上出现”这个问题。
我想问下其他的服务器也是UOS系统吗?
如果其它服务器不是UOS,也许是这个系统本身的底层支持不是很好。
请提供下出错这台服务器的UOS版本信息。
也许我们可以通过安装同样的系统再现这个问题。

另外,介于这个问题可能无法短时间内解决,你可以考虑将艺术字用对应的图片替代以方便你们的工作。

正常显示的服务器:uos+FT2000PLUS
有问题的服务器:uos+kunpeng920UOS版本.png (2.8 KB)

@Yuxuan
我们将会安装对应系统,尝试再现这个问题的。一旦我们取得进展将会第一时间通知你。

@Yuxuan
由于一些原因我们无法取得鲲鹏920这样的测试机,所以我们无法再现这个问题。
对此我们深表歉意!
如果情况允许,我们建议将艺术字用对应的图片代替以保证在所有服务器上都能运行。