|
@@ -1,6 +1,5 @@
|
|
package com.qmth.distributed.print.business.util;
|
|
package com.qmth.distributed.print.business.util;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
|
import com.itextpdf.text.Document;
|
|
import com.itextpdf.text.Document;
|
|
import com.itextpdf.text.Rectangle;
|
|
import com.itextpdf.text.Rectangle;
|
|
import com.itextpdf.text.pdf.*;
|
|
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.PageSizeEnum;
|
|
import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
-import com.sun.org.apache.bcel.internal.generic.GOTO;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -166,18 +164,34 @@ public class PdfUtil {
|
|
PageSizeEnum pageSizeEnum = null;
|
|
PageSizeEnum pageSizeEnum = null;
|
|
for (int i = 1; i <= totalPages; i++) {
|
|
for (int i = 1; i <= totalPages; i++) {
|
|
Rectangle pageSize = reader.getPageSize(i);
|
|
Rectangle pageSize = reader.getPageSize(i);
|
|
- System.out.println(JSON.toJSONString(pageSize));
|
|
|
|
float width = pageSize.getWidth();
|
|
float width = pageSize.getWidth();
|
|
float height = pageSize.getHeight();
|
|
float height = pageSize.getHeight();
|
|
|
|
+ if (width <= height) {
|
|
|
|
+ min = width;
|
|
|
|
+ max = height;
|
|
|
|
+ } else {
|
|
|
|
+ min = height;
|
|
|
|
+ max = width;
|
|
|
|
+ }
|
|
if (pageSizeEnum != null) {
|
|
if (pageSizeEnum != null) {
|
|
- if (!pageSizeEnum.equals(PageSizeEnum.convertToEnum(width, height))) {
|
|
|
|
|
|
+ if (!pageSizeEnum.equals(PageSizeEnum.convertToEnum(min, max))) {
|
|
throw ExceptionResultEnum.ERROR.exception("上传的试卷pdf中存在纸张格式不一样的");
|
|
throw ExceptionResultEnum.ERROR.exception("上传的试卷pdf中存在纸张格式不一样的");
|
|
}
|
|
}
|
|
} else {
|
|
} 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;
|
|
return pageSizeEnum;
|
|
}
|
|
}
|
|
|
|
|