springboot+hutool如何批量生成二维码压缩导出功能
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要介绍springboot+hutool如何批量生成二维码压缩导出功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.引入依赖 com.google.zxing core 3.4.1 cn.hutool hutool-all 5.7.14
2.测试编码
QrConfig config = new QrConfig(300, 300);// 设置边距,既二维码和背景之间的边距 config.setMargin(3);// 设置前景色,既二维码颜色(青色) config.setForeColor(Color.CYAN);// 设置背景色(灰色) config.setBackColor(Color.GRAY);// 生成二维码到文件,也可以到流 QrCodeUtil.generate("12345678", config, FileUtil.file("E:/image/12345678.jpg"));
3.批量生成
然而我们要批量生成不可能完全靠手输,接下来实现导入excel表批量生成。
需要引入poi依赖:
4.解析excel
org.apache.poi poi-ooxml 5.0.0
准备好一份表格:
测试读取:
5.批量图片压缩
单张图片输出或下载也不方便,这时候我们要用到压缩
批量导出压缩文件
代码如下
/** * 将文件打包成zip并下载 */ @PostMapping(value = "xiazai",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiOperation("导出压缩包") public void download(HttpServletResponse response) throws IOException { response.setHeader("content-type", "application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setContentType("application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=download.zip"); CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, ArchiveStreamFactory.ZIP,response.getOutputStream()) .add(FileUtil.file("E:/image"));// ZipUtils.pngZip(response.getOutputStream(), qrImages); }
6.上传excel直接将输出流转成压缩包
尝试上传excel生成二维码压缩包并下载(不会在服务器生成文件)
代码如下:
/** * 图片内容与名字 */@Datapublic class QrImage { private byte[] bytes; private String name;}
/** * 将生成的二维码字节流压缩导出 * @param outputStream * @param qrImages */ public static void pngZip(OutputStream outputStream,ListqrImages) { //Zip输出流 ZipOutputStream zipOutputStream = null; try { zipOutputStream = new ZipOutputStream(outputStream); for (QrImage file : qrImages) { ZipEntry zipEntry = new ZipEntry(file.getName()+".png"); zipOutputStream.putNextEntry(zipEntry); //写数据 zipOutputStream.write(file.getBytes(), 0, file.getBytes().length); zipOutputStream.flush(); } zipOutputStream.flush(); zipOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭流 try { if (zipOutputStream != null) { zipOutputStream.close(); } if (outputStream != null) { outputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
/** * 将文件打包成zip并下载 */ @PostMapping(value = "xiazai",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiImplicitParam(name = "excelFile",value = "excel导入",required = true,dataType="MultipartFile",allowMultiple = true,paramType = "query") @ApiOperation("导出压缩包") public void download(@RequestParam("excelFile") MultipartFile file, HttpServletResponse response) throws IOException { //读取excel ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); List> lists = reader.read(); //删除标题 lists.remove(0); //批量生成二维码 List
qrImages = create(lists); response.setHeader("content-type", "application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setContentType("application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=download.zip");// CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, ArchiveStreamFactory.ZIP,response.getOutputStream())// .add(FileUtil.file("E:/image")); ZipUtils.pngZip(response.getOutputStream(), qrImages); } public List create(List > list) throws FileNotFoundException { QrConfig config = new QrConfig(300, 300);// 设置边距,既二维码和背景之间的边距 config.setMargin(3);// 设置前景色,既二维码颜色(青色) config.setForeColor(Color.CYAN);// 设置背景色(灰色) config.setBackColor(Color.GRAY); byte[] bytes=null; List
qrImages = new ArrayList<>(); QrImage qrImage;// 生成二维码到文件,也可以到流 for (List
以上是"springboot+hutool如何批量生成二维码压缩导出功能"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
二维
二维码
生成
文件
内容
背景
图片
输出
功能
之间
代码
景色
灰色
篇文章
青色
颜色
测试
接下来
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
显示民族数据库
应聘软件开发需要准备什么
哪里有学软件开发的学校
地物波谱数据库重要性
微信后台数据库保存多久
软件开发费怎么做摊销
网络安全法启明星辰
ajax请求多个图表数据库
贵阳有哪些网络技术职业学校
数据库操作如何新建用户权限
自建同步云盘服务器
全国自考计算机网络安全模拟试卷
信息与网络安全试题及答案
福建启鼎网络技术
之江汇网络安全
软件开发项目管理助理职责
江苏省公安厅网络安全大队
操作sqlite数据库
数据库原理与技术填空题
如何培养网络技术专业
视频推荐算法数据库
数据集与数据库的区别
网民遇到的首要网络安全问题
嵌入式数据库 ppt
数据服务器搭建多少钱
删除表中数据库的关键词
摄像头检测数据库
常熟综合网络技术包括什么
企业管控软件开发
文本文件引入数据库