fei
2025-10-14 9e1a75cb81c360ab1d2046fd98bd73b643d2b503
archiveManager/src/main/java/com/ruoyi/service/impl/IArchiveDoublePdfGenerateServiceImpl.java
@@ -1,13 +1,13 @@
package com.ruoyi.service.impl;
import cn.hutool.json.JSONObject;
import com.ruoyi.service.IArchiveDoublePdfGenerateService;
import org.apache.http.HttpEntity;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import cn.hutool.http.HttpRequest;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -15,6 +15,7 @@
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;
@@ -29,54 +30,97 @@
    private  String MUL_LAYER_PDF_DOWNLOAD_URL = OCRServer + "api/doc/download";
    public void testConnection()
    {
        // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        // 创建Get请求
        HttpGet httpGet = new HttpGet(OCRServer);
        // 响应模型
        CloseableHttpResponse response = null;
        try {
            // 由客户端执行(发送)Get请求
            response = httpClient.execute(httpGet);
            // 从响应模型中获取响应实体
            HttpEntity responseEntity = response.getEntity();
            System.out.println("响应状态为:" + response.getStatusLine());
            if (responseEntity != null) {
                System.out.println("响应内容长度为:" + responseEntity.getContentLength());
                System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // 释放资源
                if (httpClient != null) {
                    httpClient.close();
                }
                if (response != null) {
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
    public void unicodeEscapeToChinese (String unicodeEscapedString) {
        // 解码Unicode转义序列
        StringBuilder decodedString = new StringBuilder();
        int i = 0;
        while (i < unicodeEscapedString.length()) {
            if (unicodeEscapedString.startsWith("\\u", i)) {
                // 找到一个Unicode转义序列
                int codePoint = Integer.parseInt(unicodeEscapedString.substring(i + 2, i + 6), 16);
                decodedString.appendCodePoint(codePoint);
                i += 6; // 跳过这个Unicode转义序列
            } else {
                // 不是Unicode转义序列,直接添加字符
                decodedString.append(unicodeEscapedString.charAt(i));
                i++;
            }
        }
        // 打印解码后的字符串
        System.out.println(decodedString.toString());
    }
    public void testConnection() throws IOException {
        File pdfFile = new File("34.pdf");
        String base64 = java.util.Base64.getEncoder().encodeToString(Files.readAllBytes(pdfFile.toPath()));
        JSONObject inputObject = new JSONObject();
        inputObject.put("base64", base64);
        //inputObject.put("options", new JSONObject().put("ocr.language", "models/config_chinese.txt"));
        String response = HttpRequest.post(OCRServer+ "api/doc/result")
                .body(inputObject.toString())
                .contentType("application/json")
                .execute()
                .body();
        unicodeEscapeToChinese(response);
       // System.out.println("unicodeEscapeToChinese("\u672a\u586b\u5199id\u3002"));
//        // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
//        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//        // 创建Get请求
//        HttpGet httpGet = new HttpGet(OCRServer);
//
//        // 响应模型
//        CloseableHttpResponse response = null;
//        try {
//            // 由客户端执行(发送)Get请求
//            response = httpClient.execute(httpGet);
//            // 从响应模型中获取响应实体
//            HttpEntity responseEntity = response.getEntity();
//            System.out.println("响应状态为:" + response.getStatusLine());
//            if (responseEntity != null) {
//                System.out.println("响应内容长度为:" + responseEntity.getContentLength());
//                System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
//            }
//        } catch (ClientProtocolException e) {
//            e.printStackTrace();
//        } catch (ParseException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                // 释放资源
//                if (httpClient != null) {
//                    httpClient.close();
//                }
//                if (response != null) {
//                    response.close();
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
    }
    public void doublePdfGenerate() throws IOException {
        // 构建请求URL和文件路径
        String url = "http://127.0.0.1:1224/api/doc/upload";
        String path = "测试文件.pdf";
        String options_json = "{\"doc.extractionMode\": \"fullPage\"}";
      //  String ocrUrl = "http://localhost:32009/umi/api/ocr";
        File pdfFile = new File("34.pdf");
        String base64 = java.util.Base64.getEncoder().encodeToString(Files.readAllBytes(pdfFile.toPath()));
        JSONObject inputObject = new JSONObject();
        inputObject.put("base64", base64);
        //inputObject.put("options", new JSONObject().put("ocr.language", "models/config_chinese.txt"));
        String response = HttpRequest.post(OCRServer+"/umi/api/ocr")
                .body(inputObject.toString())
                .contentType("application/json")
                .execute()
                .body();
        System.out.println("识别结果: " + response);
// 创建HttpClient实例
//        HttpClient client = HttpClient.newHttpClient();