docx4jword转pdf解决中文乱码问题(包括宋体(正文))
docx4jword转pdf解决中⽂乱码问题(包括宋体(正⽂))
docx4j 是个⾮常好⽤的docx操作包,我主要⽤来做docx转pdf,但是发现中⽂会有乱码,原因是因为word⾥⾯的中⽂字体名也是中⽂的,但是从本地字体库⾥⾯拿到的字体名是英⽂的,所以需要做个映射,这⾥注意如果是Linux,需要安装中⽂字体,把windows上的字体复制上去就⾏。
后来还发现宋体(正⽂)和宋体(标题)还是乱码,⽹上也没到答案,有⼈问了,但是没⼈回答,所以只能⾃⼰看⽇志和调试,最后到了解决办法,如下:
public static void main(String[] args)throws Exception {
try(FileOutputStream os =new FileOutputStream("D:\\testpdf\\wtp.pdf")){
WordprocessingMLPackage mlPackage = WordprocessingMLPackage.load(new FileInputStream("C:\\Users\\MST\\Downloads\\CgALelzP-j-APRw5 AADW_NR3rYI76.docx"));
创造营2020排名公布Mapper fontMapper =new IdentityPlusMapper();
fontMapper.put("⾪书", ("LiSu"));
fontMapper.put("宋体", ("SimSun"));
fontMapper.put("微软雅⿊", ("Microsoft Yahei"));
fontMapper.put("⿊体", ("SimHei"));
fontMapper.put("楷体", ("KaiTi"));
三八节的经典祝福语fontMapper.put("新宋体", ("NSimSun"));
fontMapper.put("华⽂⾏楷", ("STXingkai"));
fontMapper.put("华⽂仿宋", ("STFangsong"));
fontMapper.put("仿宋", ("FangSong"));
fontMapper.put("幼圆", ("YouYuan"));
fontMapper.put("华⽂宋体", ("STSong"));
fontMapper.put("华⽂中宋", ("STZhongsong"));
fontMapper.put("等线", ("SimSun"));
word打开是乱码
fontMapper.put("等线 Light", ("SimSun"));
fontMapper.put("华⽂琥珀", ("STHupo"));
fontMapper.put("华⽂⾪书", ("STLiti"));
雷霆嘎巴什么意思
fontMapper.put("华⽂新魏", ("STXinwei"));
fontMapper.put("华⽂彩云", ("STCaiyun"));
fontMapper.put("⽅正姚体", ("FZYaoti"));
fontMapper.put("⽅正舒体", ("FZShuTi"));
fontMapper.put("华⽂细⿊", ("STXihei"));
fontMapper.put("宋体扩展",("simsun-extB"));
fontMapper.put("仿宋_GB2312",("FangSong_GB2312"));
fontMapper.put("新細明體",("SimSun"));
/
/解决宋体(正⽂)和宋体(标题)的乱码问题
教师节祝福语 简短小学生PhysicalFonts.put("PMingLiU", ("SimSun"));
PhysicalFonts.put("新細明體", ("SimSun"));
mlPackage.setFontMapper(fontMapper);
FOSettings foSettings = ateFOSettings();
foSettings.setWmlPackage(mlPackage);
端口关闭
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。