Compare commits

..

No commits in common. "4376ee65aa79be118bf1d2d3f4cfd2addb7e0a1c" and "4da3a0670de586515fef58230aaa93aa73e70daa" have entirely different histories.

2 changed files with 1 additions and 109 deletions

View File

@ -8,13 +8,11 @@ import com.dpkj.common.utils.ThirdService;
import com.dpkj.modules.print.enums.*; import com.dpkj.modules.print.enums.*;
import com.dpkj.modules.print.request.MS439Request; import com.dpkj.modules.print.request.MS439Request;
import com.dpkj.modules.print.service.MS439PrintService; import com.dpkj.modules.print.service.MS439PrintService;
import com.dpkj.modules.print.utils.PDFUtils;
import com.dpkj.modules.print.vo.PrinterStatus; import com.dpkj.modules.print.vo.PrinterStatus;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File;
import java.util.Objects; import java.util.Objects;
/** /**
@ -33,12 +31,6 @@ public class MS439PrintServiceImpl implements MS439PrintService {
@Override @Override
public LexMarkResultDTO<?> printImage(MS439Request request) { public LexMarkResultDTO<?> printImage(MS439Request request) {
// 校验是本地地址还是http开头的
PDFUtils.AddressType addressType = PDFUtils.checkAddressType(request.getFileDir());
if (addressType.equals(PDFUtils.AddressType.HTTP)) {
request.setFileDir(PDFUtils.downloadPdf(request.getFileDir()));
}
LexMarkResultDTO<PrinterStatus> status = this.getStatus(request.getPagesource()); LexMarkResultDTO<PrinterStatus> status = this.getStatus(request.getPagesource());
PrinterStatus ms439 = status.getData(); PrinterStatus ms439 = status.getData();
@ -86,19 +78,7 @@ public class MS439PrintServiceImpl implements MS439PrintService {
lexMarkDTO.setParam(param.toString()); lexMarkDTO.setParam(param.toString());
LexMarkResultDTO<LexMarkResultDTO.Param> paramLexMarkResultDTO = thirdService.callDevice(lexMarkDTO, LexMarkResultDTO.Param.class); LexMarkResultDTO<LexMarkResultDTO.Param> paramLexMarkResultDTO = thirdService.callDevice(lexMarkDTO, LexMarkResultDTO.Param.class);
// thirdService.close("HtmPrinter");
File file = new File(request.getFileDir());
// 检查文件是否存在
if (file.exists()) {
// 尝试删除文件
if (file.delete()) {
log.info("文件删除成功: " + request.getFileDir());
} else {
log.info("文件删除失败: " + request.getFileDir());
}
} else {
log.info("文件不存在: " + request.getFileDir());
}
return paramLexMarkResultDTO; return paramLexMarkResultDTO;
} }

View File

@ -1,88 +0,0 @@
package com.dpkj.modules.print.utils;
import com.dpkj.common.exception.RRException;
import lombok.extern.slf4j.Slf4j;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
@Slf4j
public class PDFUtils {
private static final String defaultPath = "D:/images";
public enum AddressType {
HTTP,
LOCAL,
OTHER,
UNKNOWN
}
/**
* 校验地址类型
* @param address 地址
*/
public static AddressType checkAddressType(String address) {
if (address == null || address.isEmpty()) {
return AddressType.UNKNOWN;
}
// 检查是否为 HTTP HTTPS 地址
if (address.startsWith("http://") || address.startsWith("https://")) {
return AddressType.HTTP;
}
// 简单判断是否为本地地址
// 本地地址可能以文件协议 file:// 开头或者是一个相对路径或绝对路径
if (address.startsWith("file://") ||
(address.contains(":") && address.contains("\\")) ||
(address.startsWith("/"))) {
return AddressType.LOCAL;
}
return AddressType.OTHER;
}
public static String downloadPdf(String pdfUrl) {
String savePath = defaultPath + "/genera_image_" + System.currentTimeMillis() + ".pdf";
try {
// 创建 URL 对象
URL url = new URL(pdfUrl);
// 打开 HTTP 连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为 GET
connection.setRequestMethod("GET");
// 获取响应码
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// 获取输入流
try (InputStream inputStream = connection.getInputStream();
// 创建文件输出流
FileOutputStream outputStream = new FileOutputStream(savePath)) {
byte[] buffer = new byte[4096];
int bytesRead;
// 循环读取数据并写入文件
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
log.info("PDF 文件下载成功,保存路径: " + savePath);
}
} else {
log.error("下载失败,响应码: " + responseCode);
}
// 断开连接
connection.disconnect();
}catch (Exception e) {
throw new RRException("PDF文件下载失败");
}
return savePath;
}
}