aspose-words 跨操作系统 word 转 pdf 字体乱码问题
起初想到的是 通过docker 文件挂载的方式 把docker 容器字体文件夹 /usr/share/fonts 挂载到宿主机的字体文件夹,这种方式测试环境用着也还可以,毕竟测试环境基本是单节点,但是生产k8s环境想想就特别麻烦,这个方案就不用了。构建时特别要注意的是 这个"." ,意思是去当前 dockerfile 所在的目录去build,这样就构建出一个有字体的新的基础镜像。方案2是可行的,最
·
问题复现:转出pdf 文件 几乎都是"口"
经过排查分析:在 windows 操作系统转换pdf 是没问题的,但是通过 docker(容器)部署到
linux 就出现了这个问题。
原因:linux 没有相关字体文件造成的转换乱码
解决方案1:
起初想到的是 通过docker 文件挂载的方式 把docker 容器字体文件夹 /usr/share/fonts 挂载到宿主机的字体文件夹,这种方式测试环境用着也还可以,毕竟测试环境基本是单节点,但是生产k8s环境想想就特别麻烦,这个方案就不用了
解决方案2:
在dockerfile 文件里来处理,通过dockerfile 做一个包含需要字体的基础镜像
FROM openjdk:8-jre-alpine
VOLUME /tmp
ADD ./agent/ /agent/
ENV LANG en_US.UTF-8
COPY ./simsun.ttf /usr/share/fonts/simsun.ttf
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig && rm -rf /var/cache/apk/* && fc-cache -vf
COPY ./simsun.ttf /usr/share/fonts/simsun.ttf 把宋体加入到基础镜像
fc-cache -vf 刷新系统字体,使之生效
构建时特别要注意的是 这个"." ,意思是去当前 dockerfile 所在的目录去build,这样就构建出一个有字体的新的基础镜像
方案2是可行的,最后项目再基于 这个有字体的基础镜像打包部署,乱码完美解决
不知还有没有什么其他好的方法,目前就想到这2种
更多推荐
已为社区贡献1条内容
所有评论(0)