Forráskód Böngészése

fix:pdfA4 -> A3。

caozixuan 3 éve
szülő
commit
c865e3efa2

+ 13 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -157,18 +157,29 @@ public class PdfUtil {
      * @throws IOException
      */
     public static PageSizeEnum getPdfFormat(File file) throws IOException {
+        float min;
+        float max;
         Optional.ofNullable(file).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("文件不能为空"));
         PdfReader reader = new PdfReader(ByteArray.fromFile(file).value());
         int totalPages = reader.getNumberOfPages();
         PageSizeEnum pageSizeEnum = null;
         for (int i = 1;i <= totalPages;i ++){
             Rectangle pageSize = reader.getPageSize(i);
+            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(pageSize.getWidth(), pageSize.getHeight()))){
+                if (!pageSizeEnum.equals(PageSizeEnum.convertToEnum(min, max))){
                     throw ExceptionResultEnum.ERROR.exception("上传的试卷pdf中存在纸张格式不一样的");
                 }
             }else {
-                pageSizeEnum = PageSizeEnum.convertToEnum(pageSize.getWidth(), pageSize.getHeight());
+                pageSizeEnum = PageSizeEnum.convertToEnum(min, max);
             }
         }
 

+ 5 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -295,9 +295,10 @@ public class SysController {
         BasicAttachment basicTranslateAttachment = null;
         EditResult original = new EditResult();
         EditResult translate = new EditResult();
+        File pdfOriginalFile = null;
         File localTempFile = null;
         try {
-            File pdfOriginalFile = FileUtil.multipartFileToFile(file);
+            pdfOriginalFile = FileUtil.multipartFileToFile(file);
             PageSizeEnum pageSizeEnum = PdfUtil.getPdfFormat(pdfOriginalFile);
             switch (pageSizeEnum){
                 case A3:
@@ -354,6 +355,9 @@ public class SysController {
             if (Objects.nonNull(localTempFile)){
                 FileUtil.deleteFile(localTempFile);
             }
+            if (Objects.nonNull(pdfOriginalFile)){
+                FileUtil.deleteFile(pdfOriginalFile);
+            }
         }
         return ResultUtil.ok(resultMap);
     }