java生成pdf时汉字乱码,为□-(linux系统)

news/2024/11/30 4:53:29/

问题描述:Linux环境中Java生成pdf时,图片中的汉字位置都显示为方框,乱码、方框、问号

 原因分析:经排查日志,发现是在生成的时候缺少对应的字体库

1:由于项目由原来的Windows系统换到了Linux系统,所以部分系统环境不一致

2:不仅是缺少默认的 宋体 字体,实际上所有的中文字体都没有,所以需要安装新的字体库

3:也有网友缺少的是黑体,Linux环境下"Font font = new Font(“黑体”, Font.BOLD, 18)"[BufferedImageGraphicsdrawString]中文乱码,在Windows下不会乱码,但在Linux下Nginx和Tomcat部署后出现乱码、方框、问号等等。而本地运行环境为Windows,线上为Linux的Ubuntu系统

 解决方法:

1:查看【/usr/share/fonts】目录,新系统中无 fonts 文件夹。无文件夹则手动创建 fonts 文件夹。

2:下载所需要的字体,本系统所需为 simsun.ttc (新宋体)和 simsun.ttf(宋体),黑体为simhei.ttf

所需要的字体可以在Windows的【C:\Windows\Fonts】文件夹中查看、寻找

3:进入到服务器的【/usr/share/fonts】目录下,新建【chinese】文件夹,进入其中然后新建【TrueType】文件夹

进入文件夹:cd /usr/share/fonts/chinese/TrueType/

4:上传刚才挑选的字体进入这里

上传命令:rz

5:最后在此目录下,执行"fc-cache -fv",进行扫描字体并生成字体信息的缓存,新启动的应用程序就可以使用这个字体了

6:此时线上还无法使用该字体,需要重启Tomcat将项目重新启动,重启后即可生效


http://www.ppmy.cn/news/363317.html

相关文章

用pdfbox进行pdf转图片中文乱码,缺失字体

PDDocument pdDocument PDDocument.load(inputStreamByUrl); PDFRenderer pdfRenderer new PDFRenderer(pdDocument); BufferedImage bufferedImage pdfRenderer.renderImageWithDPI(i, 144F, ImageType.RGB); 使用pdfbox读取pdf转图片的时候,如果缺失字体&…

浏览器打开pdf乱码

前几天在测试项目的时候,无意间发现个bug——在下载pdf时如果选择打开则会出现乱码,然而保存pdf文件时却不会乱码。一开始,我以为是浏览器的设置问题,问了问度娘,说是没有ADOBE的缘故,于是乎,安…

pdf阅读器或知云文献阅读选中pdf文字乱码

pdf阅读器或知云文献阅读选中pdf文字乱码 使用知云翻译pdf的时候选中文字全是问号和乱码,其他的阅读器选中复制的文字也是乱码 原因分析: 文章是不可复制的,需要重新扫描和orc 解决方案: 使用的软件:Adobe acrobat pro…

ES7、ES8、ES9、ES10、ES11、ES12都增加了那些新特性?

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 ES7 ES2016(ES7)中新增了如下特性👇 Array.prototype…

LabVIEW开发呼吸分析系统

LabVIEW开发呼吸分析系统 在日常生活中,许多人都在练习调息法,但大多数人都不知道如何以完美的方式做。不当的做法不会带来适当的结果。一种使用LabVIEW分析呼吸信号的方法,以使人们以完美的方式练习调息。这有助于从业者按照系统指定的说明…

RHEL7 / 8 / 9中禁用Ctrl-Alt-Del

为什么服务器在 /var/log/messages 中使用“systemd: Received SIGINT”重启&#xff1f; 系统重新启动并在日志中显示以下消息。 Raw Feb 5 09:50:01 server01 systemd: Starting Session 1399 of user root. Feb 5 09:59:51 server01 systemd: Received SIGINT. <<-…

python高级-线程和进程相关

这里前面的linux基础就不补充了&#xff0c;只写一些比较高级的 目录 一、文件查找 1.按照名字查找 2.通配符 3.文件大小查找 二、压缩和打包 1.zip 2.gzip 3.tar命令 三、权限管理 四、多进程 1.创建进程 2.获取进程id 3.进程传参 4.进程不共享全局变量 5.守护…