参考文章 问题排查:使用pdfbox将pdf转image时STSong-Light字体中文乱码
pdfbox版本是2.0
日志中打印出类似这样的日志(例:Using fallback XXX for CID-keyed font STSong-Light),就说明系统没有安装STSong-Light字体,pdfbox使用XXX字体来替代了。如果出现方块,就说明没有这种字体,并且替代字体也没有,日志也有相应的其他提示。
正常操作就是安装缺失的 STSong-Light 字体,但是在网上搜到的都是 STSong 字体安装后没效果 我的是windows10
参考上面文章(请一定看一下),修改 FontMapperImpl 在substitutes中增加映射字体STSong-Light->STFangsong
从Apache 下载pdfbox源码 修改 \pdfbox\src\main\java\org\apache\pdfbox\pdmodel\font\FontMapperImpl.java
final class FontMapperImpl implements FontMapper
{
private static final FontCache fontCache = new FontCache(); // todo: static cache isn't ideal
private FontProvider fontProvider;
private Map<String, FontInfo> fontInfoByName;
private final TrueTypeFont lastResortFont;
/** Map of PostScript name substitutes, in priority order. */
private final Map<String, List<String>> substitutes = new HashMap<String, List<String>>();
FontMapperImpl()
{
// substitutes for standard 14 fonts
substitutes.put("Courier",
Arrays.asList