[]
        
(Showing Draft Content)

Docker部署报表打印后中文显示为乱码

问题描述

Docker 部署后,导出报表效果如下,报表中的中文显示为乱码。

image2022-1-10_10-43-9.png

问题定位

这个问题是由于 docker 方式部署,docker 容器内部缺少相应的中文字体导致。

解决方法

向 docker 容器内部安装相应的中文字体,安装方法有多种,此处为您提供其中一种方法供参考。

1. 将微软雅黑字体,放到 Yahei 文件夹中,文件夹中的字体文件,应是这三种文件:msyh.ttc,msyhbd.ttc,msyhl.ttc

2. 然后将该文件夹上传到宿主机上,比如上传到宿主机的 /usr/share/fonts/路径,然后再通过命令将该文件夹上传到 docker 容器内部的/usr/share/fonts/路径(这里上传的 docker 容器名称为 wyn)

docker cp /usr/share/fonts/Yahei/ wyn:/usr/share/fonts/

3. 接着通过如下命令进入容器内部。

docker exec -it wyn /bin/bash

image2022-1-10_10-43-50.png

4. 进入到容器内部之后,执行如下命令安装字体,如下图提示表示安装成功。

fc-cache -fv

image2022-1-10_10-53-58.png

5. 最后字体安装成功后,重新启动 docker 容器。

6. 再次导出 pdf,预览效果如下,问题解决。

image2022-1-10_10-55-3.png