[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(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