SpringBoot + vue 部署docker word转PDF 不显示中文,乱码
解决方法1:给Liunx安装字体 解决普遍 word转PDF 不显示中文,乱码问题
给Linux系统安装字体
1.把Windows下字体复制到Liunx
1.先进入Windows的C:\Windows\Font 复制想要的字体或全部字体(不想考虑太多就全部字体,本人全部字体)
2.进入Liunx的/usr/share/fonts目录下
3.在/usr/share/fonts 下创建一个文件 例如windowsfonts文件
4.进入/usr/share/fonts/windowsfonts把windows字体粘贴进去(可以使用Xftp工具来实现)
2.刷新Liunx字符缓存
1.在windowsfonts文件夹中执行 mkfontscale指令
2.在windowsfonts文件夹中执行 mkfontdir 指令
3.运行fc-cache 指令
若mkfontscale指令报错
在Centos下执行:sudo yum install mkfontscale
在Ubuntu下执行:sudo apt-get install ttf-mscorefonts-installer
fc-cache指令报错
在Centos下执行:sudo yum install fontconfig
在Ubuntu下执行:sudo apt-get install fontconfig
解决方法2:给docker容器配置字体路径
怎么部署 SpringBoot + vue 查看链接 docker部署分布式前后端分离 | JiaXinXiaoBingGan (gitee.io)
1.进入java服务容器 输入 docker exec -it 容器id /bin/bash
2.在容器内 输入 fc-list指令
3.重新运行容器,通过文件映射的方式把字体文件存入 容器的字体文件中
docker run -d -it --name 容器名 --network 网络名 -v /usr/local/java:/usr/local/java -v /usr/local/java/fonts:/opt/java/openjdk/jre/lib/fonts -v /usr/local/java/fonts:/usr/share/fonts/truetype/dejavu -p 8189:8189 file_sys:1
提示
若不清楚/usr/local/java与/usr/local/java/fonts来历可以查看本篇文章的上文 docker部署分布式前后端分离 | JiaXinXiaoBingGan (gitee.io)
/usr/local/java/fonts 这里的fonts文件需要自己创建
解决方法3:设置docker容器语言为zh_CN.UTF-8,编写Dockerfile文件
1.给Dockerfile文件添加
ENV LANG=zh_CN.UTF-8
ENV LC_CTYPE="zh_CN.UTF-8"
ENV LC_NUMERIC="zh_CN.UTF-8"
ENV LC_TIME="zh_CN.UTF-8"
ENV LC_COLLATE="zh_CN.UTF-8"
ENV LC_MONETARY="zh_CN.UTF-8"
ENV LC_MESSAGES="zh_CN.UTF-8"
ENV LC_PAPER="zh_CN.UTF-8"
ENV LC_NAME="zh_CN.UTF-8"
ENV LC_ADDRESS="zh_CN.UTF-8"
ENV LC_TELEPHONE="zh_CN.UTF-8"
ENV LC_MEASUREMENT="zh_CN.UTF-8"
ENV LC_IDENTIFICATION="zh_CN.UTF-8"
ENV LC_ALL=zh_CN.UTF-8
2.重新构建镜像
3.重新运行容器
解决方法4:给docker容器的jdk配置字体路径(一般用不到)
docker run -d -it --name 容器名 --network 网络名 -v /usr/local/java:/usr/local/java -v /usr/local/java/fonts:/opt/java/openjdk/jre/lib/fonts -v /usr/local/java/fonts:/usr/share/fonts/truetype/dejavu -p 8189:8189 file_sys:1
/opt/java/openjdk/jre/lib/fonts 这是向jdk中添加图片。想知道容器内的jdk路径自行百度一下。哈哈哈
p 8189:8189 file_sys:1
/opt/java/openjdk/jre/lib/fonts 这是向jdk中添加图片。想知道容器内的jdk路径自行百度一下。哈哈哈