| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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(); |