Prechádzať zdrojové kódy

3.4.5 update-20250514 内嵌字体

xiaofei 1 mesiac pred
rodič
commit
ae0fb2ef54

+ 10 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfFillUtils.java

@@ -1,26 +1,23 @@
 package com.qmth.distributed.print.business.util;
 
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.itextpdf.awt.AsianFontMapper;
 import com.itextpdf.text.*;
+import com.itextpdf.text.io.StreamUtil;
 import com.itextpdf.text.pdf.*;
 import com.qmth.distributed.print.business.bean.dto.PdfPackageDto;
 import com.qmth.distributed.print.business.bean.dto.PdfSignDto;
 import com.qmth.distributed.print.business.entity.BasicTemplate;
 import com.qmth.distributed.print.business.enums.RequiredFieldsEnum;
-import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.bean.examRule.CodeNameEnable;
 import com.qmth.teachcloud.common.bean.examRule.CodeNameEnableValue;
-import com.qmth.teachcloud.common.contant.SpringContextHolder;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.enums.ClassifyEnum;
-import org.apache.commons.collections4.CollectionUtils;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.util.FileUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.InputStream;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.List;
@@ -50,7 +47,11 @@ public class PdfFillUtils {
     static {
         try {
             //解决中文不显示问题
-            BaseFont bfChinese = BaseFont.createFont(AsianFontMapper.ChineseSimplifiedFont, AsianFontMapper.ChineseSimplifiedEncoding_H, BaseFont.EMBEDDED);
+//            BaseFont bfChinese = BaseFont.createFont(AsianFontMapper.ChineseSimplifiedFont, AsianFontMapper.ChineseSimplifiedEncoding_H, BaseFont.EMBEDDED);
+            InputStream fontStream = FileUtil.getStream("fonts/SimSun.ttf");
+            // 将InputStream转换为byte数组
+            byte[] fontData = StreamUtil.inputStreamToArray(fontStream);
+            BaseFont bfChinese = BaseFont.createFont("SimSun.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, BaseFont.CACHED, fontData, null);
             textFont28 = new Font(bfChinese, 28);
             textFont24 = new Font(bfChinese, 24);
             textFont22 = new Font(bfChinese, 22);
@@ -64,6 +65,7 @@ public class PdfFillUtils {
             textFont8 = new Font(bfChinese, 8);
         } catch (Exception e) {
             e.printStackTrace();
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         }
     }
 

BIN
distributed-print/src/main/resources/fonts/SimSun.ttf