Java 解决pdfbox转图片显示中文乱码 No glyph for 165 (CID 5752) in font STSong-Light

问题描述:

        在开发PDF转JPG图片后,图片显示中文乱码,以下为具体示例:

        pdf源文件

        转换成JPG后

        截图可以看到¥符号无法转换为乱码

        关键代码报错截图

        代码已经提示我们STSong-Light字体中165符文不存在,而165正好对应着¥字符。(如果你们出现不存在某个字体的报错,接下来也可以跟我一样操作)

2024-04-28 00:13:31 WARN  [org.apache.pdfbox.pdmodel.font.PDCIDFontType0] - Using fallback KaiTi for CID-keyed font STSong-Light
2024-04-28 00:13:31 WARN  [org.apache.pdfbox.rendering.CIDType0Glyph2D] - No glyph for 165 (CID 5752) in font STSong-Light
2024-04-28 00:13:31 WARN  [org.apache.pdfbox.pdmodel.font.PDTrueTypeFont] - Using fallback font 'LiberationSans' for 'CourierNewPSMT'

解决方案:

1.从网上下载最新的字体

        因为我怀疑目前系统存在的字体是老的,所以我从网上下载最新的STSong-Light字体,下载地址:STSong-Light字体|STSong-Light Version 1.02字体-TTF字体/未分类字体-字客网;

2.在系统上安装字体,linux和window各有不同,我这里为linux字体安装:
## (可忽略)查看系统中的字体
fc-list## (可忽略)查看系统中的中文字体
fc-list :lang=zh## 进入系统自带的字体目录
cd /usr/share/fonts/## 进入chinese,没有需要创建,改目录用于存放中文字体
cd chinese## 将字体文件上传到该目录,我这里用的是rz命令,大家也可以用其它linux上传工具(例如WinSCP)也可以;
rz## 调整当前chinese目录下字体读写权限
sudo chmod 755 ./*.TTF## 更新字体缓存
fc-cache -fv## 刷新系统配置文件
source /etc/profile
3.字体安装好后,还需要重启tomcat,这点很重要,不然代码不生效!!!!!
4.tomcat重启好后,就可以测试功能了;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/314951.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 编码规约扫描 Code inspection did not find anything to report.

IDEA安装了Alibaba Java Coding Guidelines插件,却看不到规约检查结果。手动进行编码规约扫描,弹窗提示“Code inspection did not find anything to report.”: 这种情况是因为代码文件所在的目录被标记成了测试文件(Test Source…

[leetcode] B树是不是A树的子结构

给定两棵二叉树 tree1 和 tree2,判断 tree2 是否以 tree1 的某个节点为根的子树具有 相同的结构和节点值 。 注意,空树 不会是以 tree1 的某个节点为根的子树具有 相同的结构和节点值 。 示例 1: 输入:tree1 [1,7,5], tree2 [6,…

ansible-copy用法

目录 概述实践不带目录拷贝带目录拷贝 概述 ansible copy 常用用法举例 不带目录拷贝,拷贝的地址要写全 带目录拷贝,拷贝路径不要写在 dest 路径中 实践 不带目录拷贝 # with_fileglob 是 Ansible 中的一个循环关键字,用于处理文件通配符匹…

docker 基本命令

目录 一、docker 镜像操作命令 1.1.查询软件镜像 1.2.docker pull:下载镜像 1.3.docker push:上传镜像 1.4.docker images:查看本地镜像 1.5.docker inspect :获取镜像详细信息 1.6.docker tag:添加镜像标签 …

【vscode】2024最新!vscode云端配置同步方案:code settings sync

小tian最近对电脑进行了系统重装,结果vscode相关配置和插件都没有保存记录,还好公司电脑里还有。痛定思痛,决定写一篇vscode云端同步配置方案,以作记录和分享~ 步骤一:安装vscode插件:code settings sync …

基于SpringBoot + Vue实现的家政服务管理系统设计与实现+毕业论文+答辩PPT+指导搭建视频(包运行成功)

目录 项目介绍 论文展示 资源获取 项目介绍 家政服务管理平台是一个管理信息系统,为了宣传的需要,为了给用户提供方便快捷的服务,从而设计了家政服务管理平台。管理员可以通过这个系统把家政服务信息发布出去,可以方便用户快…

Mac下使用homebrew管理多版本mysql同时启动

Mac下使用homebrew管理多版本mysql同时启动 思路 给每个版本分配不同的数据目录和配置文件即可 本文尝试了使用 brew 安装管理多个MySQL版本,同时运行、直接切换 安装 如果已有数据文件请自行备份以及使用 安装 mysql 5.7 brew install mysql5.7在 /opt/home…

微信小程序使用echarts实现条形统计图功能

微信小程序使用echarts组件实现条形统计图功能 使用echarts实现在微信小程序中统计图的功能,其实很简单,只需要简单的两步就可以实现啦,具体思路如下: 引入echarts组件调用相应的函数方法 由于需要引入echarts组件,代…

Vue2学习笔记(尚硅谷天禹老师)

目录 一、入门案例 二、模板语法 三、数据绑定 四、el和data的两种写法 五、MVVM模型 六、Object.defineproperty方法 七、Vue中响应式原理 八、数据代理 九、methods配置项 十、Vue中的事件处理 十一、Vue中的键盘事件 十二、计算属性 十三、监视属性watch 十四、绑定Class样式…

深入理解操作系统与计算机体系结构

文章目录 操作系统(Operator System)为什么要有操作系统操作系统是如何进行管理的为什么说操作系统是安全,稳定,高效的理解系统调用和库函数 操作系统(Operator System) 概念: 操作系统(Operating System,简称OS&…

会跳舞的网站引导页HTML源码

源码介绍 这套引导页源码非常好看,网址也不会不停的动起来给人一种视觉感很强烈 简单修改一下里面的地址就行看,非常简单! 效果预览 源码下载 会跳舞的网站引导页HTML源码

数据结构——插入排序

基本思想: 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 实际中我们玩扑克牌时&…

视频通话实时换脸:支持训练面部模型 | 开源日报 No.235

iperov/DeepFaceLive Stars: 19.7k License: GPL-3.0 DeepFaceLive 是一个用于 PC 实时流媒体或视频通话的人脸换装工具。 可以使用训练好的人脸模型从网络摄像头或视频中交换面部。提供多个公共面部模型,包括 Keanu Reeves、Mr. Bean 等。支持自己训练面部模型以…

图像处理到神经网络:线性代数的跨领域应用探索

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析…

Maven解决找不到依赖项

报错如图 方案一&#xff1a;Maven的Setting文件中添加albaba的镜像文件 1.下载maven &#xff1a;Maven – Download Apache Maven 2. 配置镜像 更改成这个&#xff1a; <mirror> <id>alimaven</id> <name>aliyun maven</name> <url&g…

Rust腐蚀服务器搭建架设教程ubuntu系统

Rust腐蚀服务器搭建架设教程ubuntu系统 大家好我是艾西一个做服务器租用的网络架构师。Rust腐蚀游戏对于服务器的配置有一定的要求很多小伙伴就思考用linux系统搭建的话占用会不会小一点&#xff0c;有一定电脑基础的小伙伴都知道Linux系统和windows系统相比较linux因为是面板…

短视频生成背景文字工具(前端工具)

过年这两天有些无聊就刷刷抖音&#xff0c;刷着刷着自己也蠢蠢欲动&#xff0c;想发上几个&#xff0c;可是却找不到合适自己的模板。由于个人喜欢一些古诗文之类的&#xff0c;所以自己简单的编写了一个小工具&#xff0c;如下图&#xff1a; 当设置好了之后&#xff0c;将浏…

小程序线多点路图绘制

需求 当接口返回一连串地图坐标&#xff0c;需要根据这些坐标串联起来&#xff0c;形成一个线路图&#xff08;本次使用步行导航线路图&#xff09;。 思路 首先优先想到使用小程序Map组件的polyline属性去进行展示。但是我们发现直接使用该属性进行坐标绘制画出来的数据都是…

《架构风清扬-Java面试系列第25讲》聊聊ArrayBlockingQueue的特点及使用场景

ArrayBlockingQueue是BlockingQueue接口的一个实现类之一 这个属于基础性问题&#xff0c;老规矩&#xff0c;我们将从使用场景和代码示例来进行讲解 来&#xff0c;思考片刻&#xff0c;给出你的答案 1&#xff0c;使用场景 实现&#xff1a;基于数组实现的有界阻塞队列&…

编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 编写…