wangliang 3 anni fa
parent
commit
5b26208477

+ 20 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.business.util;
 
-import com.alibaba.fastjson.JSON;
 import com.itextpdf.text.Document;
 import com.itextpdf.text.Rectangle;
 import com.itextpdf.text.pdf.*;
@@ -11,7 +10,6 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.util.JacksonUtil;
-import com.sun.org.apache.bcel.internal.generic.GOTO;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -166,18 +164,34 @@ public class PdfUtil {
         PageSizeEnum pageSizeEnum = null;
         for (int i = 1; i <= totalPages; i++) {
             Rectangle pageSize = reader.getPageSize(i);
-            System.out.println(JSON.toJSONString(pageSize));
             float width = pageSize.getWidth();
             float height = pageSize.getHeight();
+            if (width <= height) {
+                min = width;
+                max = height;
+            } else {
+                min = height;
+                max = width;
+            }
             if (pageSizeEnum != null) {
-                if (!pageSizeEnum.equals(PageSizeEnum.convertToEnum(width, height))) {
+                if (!pageSizeEnum.equals(PageSizeEnum.convertToEnum(min, max))) {
                     throw ExceptionResultEnum.ERROR.exception("上传的试卷pdf中存在纸张格式不一样的");
                 }
             } else {
-                pageSizeEnum = PageSizeEnum.convertToEnum(width, height);
+                pageSizeEnum = PageSizeEnum.convertToEnum(min, max);
+            }
+            PdfDictionary pdfDictionary = reader.getPageN(i);
+            PdfObject rotate = pdfDictionary.get(PdfName.ROTATE);
+//            log.info("fileName:{},width:{},height:{},pageSizeEnum:{},rotateInt:{}", file.getName(), width, height, pageSizeEnum, rotate);
+            if (Objects.nonNull(rotate)) {
+                Integer rotateInt = Integer.parseInt(rotate.toString());
+                if (pageSizeEnum == PageSizeEnum.A3 && rotateInt != 90) {
+                    throw ExceptionResultEnum.ERROR.exception("上传的A3样式pdf请调整方向");
+                } else if (pageSizeEnum == PageSizeEnum.A4 && rotateInt > 0) {
+                    throw ExceptionResultEnum.ERROR.exception("上传的A4样式pdf请调整方向");
+                }
             }
         }
-
         return pageSizeEnum;
     }