文件字体处理
This commit is contained in:
@@ -10,6 +10,7 @@ import com.adc.da.util.UUIDUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.docx4j.Docx4J;
|
||||
@@ -621,6 +622,40 @@ public class AttFileEOServiceImpl extends ServiceImpl<AttFileEODao, AttFileEO> i
|
||||
fontMapper.put("Calibri", font);
|
||||
wordMLPackage.setFontMapper(fontMapper);
|
||||
OutputStream os = new java.io.FileOutputStream(src+fileInfo.getFilePath()+filePdfName);
|
||||
//加载字体文件(解决linux环境下无中文字体问题)
|
||||
if (PhysicalFonts.get("SimSun") == null) {
|
||||
PhysicalFonts.addPhysicalFonts("SimSun", WordUtils.class.getResource("/simsun.ttc"));
|
||||
}
|
||||
fontMapper.put("隶书", PhysicalFonts.get("LiSu"));
|
||||
fontMapper.put("宋体", PhysicalFonts.get("SimSun"));
|
||||
fontMapper.put("微软雅黑", PhysicalFonts.get("Microsoft Yahei"));
|
||||
fontMapper.put("黑体", PhysicalFonts.get("SimHei"));
|
||||
fontMapper.put("楷体", PhysicalFonts.get("KaiTi"));
|
||||
fontMapper.put("新宋体", PhysicalFonts.get("NSimSun"));
|
||||
fontMapper.put("华文行楷", PhysicalFonts.get("STXingkai"));
|
||||
fontMapper.put("华文仿宋", PhysicalFonts.get("STFangsong"));
|
||||
fontMapper.put("仿宋", PhysicalFonts.get("FangSong"));
|
||||
fontMapper.put("幼圆", PhysicalFonts.get("YouYuan"));
|
||||
fontMapper.put("华文宋体", PhysicalFonts.get("STSong"));
|
||||
fontMapper.put("华文中宋", PhysicalFonts.get("STZhongsong"));
|
||||
fontMapper.put("等线", PhysicalFonts.get("SimSun"));
|
||||
fontMapper.put("等线 Light", PhysicalFonts.get("SimSun"));
|
||||
fontMapper.put("华文琥珀", PhysicalFonts.get("STHupo"));
|
||||
fontMapper.put("华文隶书", PhysicalFonts.get("STLiti"));
|
||||
fontMapper.put("华文新魏", PhysicalFonts.get("STXinwei"));
|
||||
fontMapper.put("华文彩云", PhysicalFonts.get("STCaiyun"));
|
||||
fontMapper.put("方正姚体", PhysicalFonts.get("FZYaoti"));
|
||||
fontMapper.put("方正舒体", PhysicalFonts.get("FZShuTi"));
|
||||
fontMapper.put("华文细黑", PhysicalFonts.get("STXihei"));
|
||||
fontMapper.put("宋体扩展", PhysicalFonts.get("simsun-extB"));
|
||||
fontMapper.put("仿宋_GB2312", PhysicalFonts.get("FangSong_GB2312"));
|
||||
fontMapper.put("新細明體", PhysicalFonts.get("SimSun"));
|
||||
//解决宋体(正文)和宋体(标题)的乱码问题
|
||||
PhysicalFonts.put("PMingLiU", PhysicalFonts.get("SimSun"));
|
||||
PhysicalFonts.put("新細明體", PhysicalFonts.get("SimSun"));
|
||||
//宋体&新宋体
|
||||
PhysicalFont simsunFont = PhysicalFonts.get("SimSun");
|
||||
fontMapper.put("SimSun", simsunFont);
|
||||
FOSettings foSettings = Docx4J.createFOSettings();
|
||||
foSettings.setWmlPackage(wordMLPackage);
|
||||
Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL);
|
||||
|
||||
Reference in New Issue
Block a user