一、pdfbox把pdf转为图片的过程中出错
把pdf文件转为图片展示,但是展示出来的中文都是 口口 ,日志显示一堆No glyph for * (CID *) in font STSong-Light。
反正原因就是字体缺失造成的。
上述类中的63行打了一个日志表示找不到字体。大概就是这样的:
if (!font.hasGlyph(code)){
int cid = font.getParent().codeToCID(code);
String cidHex = String.format("%04x", cid);
LOG.warn("No glyph for " + code + " (CID " + cidHex + ") in font " + fontName);
}
从 提出字体的地址 中看到,AdobeSongStd-Light.otf,这个字体可以解决这个问题。
就到处找,终于找到了这个字体,安装上,当时发现还是没有解决。最后发现是操作的问题
二、windows安装字体
linux就不说了。我是win10
安装字体时,要选择“为所有用户安装”,这样安装后,安装文件就到了 C:\Windows\Fonts 目录中了,直接放到目录中也行。
如果仅仅是安装,会把字体放到用户目录下,我尝试直接安装会不生效(也就是jvm没读取到)。
最后是重启tomcat。重启tomcat后,重新进行把pdf转为图片就能把汉子成功解析出来了。这时如果你手动去删除 C:\Windows\Fonts\Adobe 宋体 Std 细体,会发现删不掉或者直接提示正在使用,说明java已经占用了该字体了。