Kaynağa Gözat

新增检验图片转pdf

xiaochan 10 ay önce
ebeveyn
işleme
0095976154

+ 7 - 0
pom.xml

@@ -229,6 +229,13 @@
             <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>
 
+        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>itextpdf</artifactId>
+            <version>5.5.13.3</version>
+        </dependency>
+
     </dependencies>
     <build>
         <plugins>

+ 17 - 0
src/main/java/thyyxxk/webserver/service/jianyanjiekou/JianYanJieKouService.java

@@ -25,6 +25,12 @@ public class JianYanJieKouService {
         private String data;
     }
 
+    @Data
+    public static class ResItems {
+        private String paperSize;
+        private String imgData;
+    }
+
     private Res postHttp(String url, JSONObject data) {
         try {
             String API_IP = "http://172.16.32.178/apis";
@@ -76,5 +82,16 @@ public class JianYanJieKouService {
         return ResultVoUtil.fail(ExceptionEnum.INVALID_PARAM, res.getMessage());
     }
 
+    public JSONObject getImage(String reportId) {
+        JSONObject js = new JSONObject();
+        js.put("reportId", reportId);
+        js.put("responseMode", "Json");
+        Res res = postHttp("/third/report/query/pic", js);
+        if (res.getCode()) {
+            return JSONObject.parseObject(res.getData());
+        }
+        return null;
+    }
+
 
 }

+ 44 - 0
src/main/java/thyyxxk/webserver/utils/Base64ImageToPdf.java

@@ -0,0 +1,44 @@
+package thyyxxk.webserver.utils;
+
+import com.itextpdf.text.*;
+import com.itextpdf.text.pdf.PdfWriter;
+
+import javax.xml.bind.DatatypeConverter;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.List;
+
+public class Base64ImageToPdf {
+    public static byte[] imageToPdf(List<String> images) throws DocumentException, IOException {
+
+        // 创建 A4 尺寸 PDF 文档
+        Document document = new Document(com.itextpdf.text.PageSize.A4, 0, 0, 0, 0);
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        PdfWriter.getInstance(document, byteArrayOutputStream);
+        document.open();
+        float a4Width = document.getPageSize().getWidth();
+        float a4Height = document.getPageSize().getHeight();
+        // 将图像添加到 PDF
+        for (String item : images) {
+            // 解析 Base64 数据为字节数组
+            byte[] imageBytes = DatatypeConverter.parseBase64Binary(item);
+            // 创建图像对象
+            Image img = Image.getInstance(imageBytes);
+            // 计算图像的宽高比例
+            float imgWidth = img.getScaledWidth();
+            float imgHeight = img.getScaledHeight();
+            // 设置缩放系数以控制宽度
+            float scaleFactor = Math.min(a4Width / imgWidth, a4Height / imgHeight);
+            img.scaleAbsolute(imgWidth * scaleFactor, imgHeight * scaleFactor);
+            document.add(img);
+            document.newPage();
+        }
+        // 关闭文档
+        document.close();
+
+        // 返回 PDF 的字节数组
+        return byteArrayOutputStream.toByteArray();
+    }
+
+
+}