Commit ac26adaf authored by 周亚武's avatar 周亚武

url打印

parent fa19d220
package com.mortals.xhx;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.LocalCacheServiceImpl;
import com.mortals.framework.springcloud.boot.BaseWebApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
//@SpringBootApplication(scanBasePackages = {"com.mortals"},exclude= {DataSourceAutoConfiguration.class})
@SpringBootApplication(scanBasePackages = {"com.mortals"},exclude={DataSourceAutoConfiguration.class})
......@@ -13,6 +16,11 @@ import org.springframework.context.ApplicationContext;
//@ImportResource(locations = {"classpath:config/spring-config.xml"})
public class ManagerApplication extends BaseWebApplication {
@Bean
public ICacheService cacheService() {
return new LocalCacheServiceImpl();
}
public static void main(String[] args) {
/* SpringApplication.run(ManagerApplication.class, args);*/
......
......@@ -51,8 +51,7 @@ public class ApiController extends BaseAbstractApiController {
ApiResp<Object> assessResp = handle(JSON.toJSONString(reqMap), "busizAssessmentReqHandler");
return assessResp;
case BUSIZ_PRINT:
ApiResp<Object> rest = handle(JSON.parseObject(reqJson, new TypeReference< Map<String, Object>>() {
}), "busizPrintReqHandler");
ApiResp<Object> rest = handle(JSON.parseObject(reqJson, PrintReq.class), "busizPrintReqHandler");
return rest;
case BUSIZ_PRINTLIST:
//获取打印机列表
......
......@@ -5,6 +5,13 @@ import cn.hutool.http.HttpUtil;
import com.mortals.xhx.common.code.PrintTypeEnum;
import lombok.extern.slf4j.Slf4j;
import javax.print.*;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
@Slf4j
public class UrlPrintComponent extends BasePrintComponent {
......@@ -14,12 +21,26 @@ public class UrlPrintComponent extends BasePrintComponent {
@Override
public void print(ComponentCons cons) {
PrintService printService = getPrintService(cons);
//通过网络下载附件地址
byte[] fileBytes = HttpUtil.downloadBytes(cons.getUrl());
//获取文件后缀
String suffixName = FileUtil.getSuffix(cons.getUrl());
log.info("file lens:{}", fileBytes.length);
log.info("file suffixName:{}", suffixName);
//打印文件
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
DocPrintJob job = printService.createPrintJob();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocAttributeSet das = new HashDocAttributeSet();
pras.add(new Copies(1));
Doc doc = new SimpleDoc(fileBytes, flavor, das);
try {
job.print(doc, pras);
} catch (PrintException e) {
throw new RuntimeException(e);
}
}
......
......@@ -29,8 +29,9 @@ public class PrintTest {
@Before
public void init(){
//domain="http://127.0.0.1:8037";
domain="http://192.168.0.43:8037";
// domain="http://127.0.0.1:8037";
// domain="http://192.168.0.43:8037";
domain="http://127.0.0.1:80";
}
@Test
......@@ -123,7 +124,7 @@ public class PrintTest {
@Test
public void testPrintBase64() {
File file = new File("F:\\test.txt");
File file = new File("G:\\test.txt");
String prefix = "txt";
// base64文件内容
......@@ -134,12 +135,14 @@ public class PrintTest {
printReq.setPrintertype(PrintTypeEnum.PRINT_BASE64.getValue());
printReq.setBase64(base64String);
printReq.setPrintername("NPI607A1C (HP LaserJet Professional M1213nf MFP)");
//printReq.setPrinterpaperwidth("140");
String url = domain+"/GetHardWareInfo";
HashMap<String, Object> params = new HashMap<>();
params.put("GetType", "71");
params.put("PrinterJson", JSON.toJSONString(printReq));
log.info("PrinterJson:" + JSON.toJSONString(printReq));
String rest = HttpUtil.post(url, params);
log.info("打印响应结果:" + rest);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment