功能描述:
在二手车项目中需要实现一个自动打印的功能。将打印的设置在java代码中写好,直接调用打印机打印,不需要有打印设置的页面。这里我使用的是Java自带的方式,一开始是打印pdf,但是由于公司的打印机不能识别application/pdf类型,因此最后我打印的是pdf转换的jpg图片。
(说明:最后我写的功能正常执行并打印出图片,但是由于该项目是SaaS软件,服务器由公司维护,而该代码执行的环境是需要运行程序的服务器与打印机在同一个局域网,这样才能正常识别,所以没有使用。为防止你走弯路,参考我的代码之前最好问清楚服务器是在哪儿维护)
代码如下:
1.获取输入流(这里是通过我们公司的pdf服务器的路径获得的)
@RequestMapping(value = "/printTransferPdf" ,method = RequestMethod.POST) @ApiOperation(value = "打印过户单据pdf", notes = "打印过户单据pdf" ,tags = { "web"}) public AbstractOutputDto downloadTransferPdf(@RequestBody PrintTransferOps ops )throws Exception{ PdfOutput output=transferService.createTransferPDF(ops); URL url=new URL(output.getPicPath()); URLConnection conn = url.openConnection(); InputStream is = conn.getInputStream(); System.out.println(output.getPicPath()); AbstractOutputDto abstractOutputDto= transferService.printPDF(is); return abstractOutputDto; }
2.打印功能
public AbstractOutputDto printPDF(InputStream in) throws IOException { AbstractOutputDto abstractOutputDto =