java语言批量生成二维码
背景:
在智物项目中,为了物品入库、借用、归还方便,减少用户的操作,使用扫描二维码的方式进行操作,那么如何java 后端生成二维码传入到前端就成了一个问题
业务分析:
1.寻找一个二维码的pfd文件类型
2.将二维码信息存入pdf文件中
3.将pdf文件如何传入前端
E-JCEBLUE官网
https://www.e-iceblue.cn/pdf_java_barcode/add-qrcode-in-pdf-using-java.html
实践操作:
1 Java 添加二维码到 PDF 文档 (e-iceblue.cn)
准备工作:
本项目的pom文件中添加两个依赖
<dependency><groupId>e-iceblue</groupId><artifactId>spire.office.free</artifactId><version>3.1.1</version>
</dependency>
<repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository>
需要在maven的setting文件中添加:
<mirror><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url><mirrorOf>com.e-iceblue</mirrorOf><name>com.e-iceblue</name></mirror>
业务实践:
controller层:
@ApiOperation(value=“后端生成所有未打印二维码信息”)
@GetMapping("/download")public FrontResult findAllUnexportedQrCode( String isExportQRCode, HttpServletResponse response){itemQRCodeService.findAllUnexportedQrCode( isExportQRCode);//如果拿到的数据不为空response.reset();response.setContentType("application/pdf");response.setHeader("Content-disposition","attachment;filename=qrcode-" + System.currentTimeMillis() + ".pdf");File file = new File("ias-provider-itemqrcode/src/main/resources/qrcode.pdf"); // 改这里try (FileInputStream inputStream = new FileInputStream(file);) { // try-with-resourcesbyte[] b = new byte[CommonConstants.ONEBYTE];int len;while ((len = inputStream.read(b)) > CommonConstants.ZERO_INT) {response.getOutputStream().write(b, CommonConstants.ZERO_INT, len);};} catch (IOException e) {e.printStackTrace();}return super.failure();}
service层:
void findAllUnexportedQrCode(String isExportQRCode);
将二维码信息生成pdf文件
public class GenerateCode {public List<PdfImage> getPdfList(List<QrcodePojo> qrCodeModelList){List<PdfImage> pdfImages =new ArrayList<>();for (QrcodePojo qrcodePojo: qrCodeModelList ) {BarcodeSettings settings = new BarcodeSettings();settings.setType(BarCodeType.QR_Code);settings.setData(qrcodePojo.getItemId());settings.setData2D(qrcodePojo.getItemName());settings.setX(CommonConstants.QRCODELengh);settings.setLeftMargin(CommonConstants.ZERO_INT);settings.setShowTextOnBottom(true);settings.setQRCodeECL(QRCodeECL.Q);settings.setQRCodeDataMode(QRCodeDataMode.Numeric);BarCodeGenerator generator = new BarCodeGenerator(settings);Image image = generator.generateImage();PdfImage pdfImage =PdfImage.fromImage((BufferedImage)image);pdfImages.add(pdfImage);}return pdfImages;}
/*** @Author:RenYaBing* @Description:查询所有未导出二维码* @CreateTime: 2023/1/30 21:13* @param: [isExportQRCode* @return: java.util.List<com.tfjybj.itemqrcode.entity.ItemQRCodeEntity>**/@Overridepublic void findAllUnexportedQrCode(String isExportQRCode ) {try {//查出二维码集合列表List<QrcodePojo> itemQRCodeEntityList =itemQRCodeMapper.findQRCode(isExportQRCode);//判断查出来的数据是否为空if(itemQRCodeEntityList!=CommonConstants.Null_Object) {//按照一页40条数据首先获取生成pdf的页int pages= itemQRCodeEntityList.size()/CommonConstants.FORTY+CommonConstants.ONE_INT;//获取总页数GenerateCode generateCode = new GenerateCode();List<PdfImage> pdfImages = generateCode.getPdfList(itemQRCodeEntityList);int startpage=CommonConstants.ZERO_INT;int i=CommonConstants.ZERO_INT;int j=CommonConstants.ZERO_INT;int count=CommonConstants.ZERO_INT;PdfDocument pdf = new PdfDocument();while (startpage<pages&&count%CommonConstants.FORTY==CommonConstants.ZERO_INT){PdfPageBase page = pdf.getPages().add();while (j<CommonConstants.EIGHTHUNDRED){while (i<=CommonConstants.FOUR_HUNDRED_AND_FROUR&&count<pdfImages.size()){page.getCanvas().drawImage(pdfImages.get(count), i, j);i+=CommonConstants.HUNDRED_INT;count++;}j+=CommonConstants.HUNDRED_INT;i=CommonConstants.ZERO_INT;}j=CommonConstants.ZERO_INT;i=CommonConstants.ZERO_INT;startpage++;}pdf.saveToFile("ias-provider-itemqrcode/src/main/resources/qrcode.pdf");pdf.dispose();}}catch (Exception e){log.error("打印导出二维码异常");}}
}
java语言批量生成二维码相关推荐
- java如何批量生成二维码,并返回成压缩包形式?
最近有点忙,现在稍微闲一些,就想写写最近遇到的一些业务. 业务:后台根据前端传入的需生成的数量,生成二维码图片并统一打包成压缩包返回. 效果图: 首先根据一定规则生成二维码字符串,然后返回成list( ...
- 读取excel批量生成二维码
昨天工作需要,让生成二维码,让用草料生成,就需要一个个的复制粘贴,有点麻烦.关键是量特别大,如果传统的复制粘贴要很长时间才可以. 后来想到用程序生成.于是百度了一下生成二维码的方法,别说还很简单,把代 ...
- 前端批量生成二维码并打包下载
前端批量生成二维码并打包下载 项目中遇到一个紧急需求在没有后端配合的情况下,前端独自实现生成二维码并打包下载 生成二维码:下载 qrcodejs2 批量打包下载:下载 JSZip 和 FileSave ...
- springboot+hutool批量生成二维码压缩导出
文章目录 1.引入依赖 2.测试编码 3.批量生成 4.解析excel 5.批量图片压缩 6.上传excel直接将输出流转成压缩包 1.引入依赖 <!-- 生成二维码依赖--><de ...
- TXT文件批量生成二维码
大多数人在制作标签时,数据库文件都选择Excel文件,其实TXT文件在作为数据库时,也是可以制作各种可变数据标签的,比如批量生成二维码,条形码等.下面我们就使用TXT文件作为数据库批量生成二维码. 打 ...
- java根据内容生成二维码
java根据内容生成二维码 一.首先导入jar包:google.zxing.jar jar包可以从maven网站下载:meven仓库 这里可以找到你想要的绝大多数jar包,可以是依赖,也可以是jar包 ...
- java利用zxing生成二维码
什么是ZXing? ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. 利用ZXing这个工具库来生成二维码,具体操作如下: 引入相关资源包 <dependency&g ...
- java将链接生成二维码工具类
一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...
- 速码工具箱,Excel批量生成二维码,瞬间搞定!
之前写过一篇文章,<批量生成二维码>,当时介绍了VBA中两种生成二维码的方式,一种需要引用QRmaker控件,一种是纯代码生成的方式.但是这两种方式都有一个最大的bug--不支持64位. ...
最新文章
- DeepLearning索引
- 【ValueError: Target is multiclass but average=‘binary‘. Please choose another average setting, one 】
- 从状态转移看:载波侦听多路访问/冲突避免(CSMA/CA)
- http协议报文体_HTTP报文基本概念学习
- 【华为云技术分享】基于自动机器学习的心脏病预测模型(1)
- android viewflipper 动画,Android ViewFlipper动画
- 飞信2009_AfterShip CTO 洪小军—我的移动互联网十年造梦记:飞信时代
- 通俗易懂的 k-means 聚类算法原理及优化(附代码)
- 人工智能 | ShowMeAI资讯日报 #2022.06.07
- Java参数校验工具validation
- “一对一直播源码开发”运筹帷幄之中,决胜千里之外
- 微信小程序开发手记1.0
- 衡量软件交付性能的4个指标
- 职场002:什么是可迁移能力
- ios文件app访问samba服务器,ios链接samba服务器
- Kotlin实战案例:实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表)
- Cannot find JRE ‘1.8‘. You can specify JRE to run maven goals in Settings | Mav
- 王选院士谈院士增选:院士未必总是学术权威
- Python提示:Consider using the `--user` option or check the permissions.
- SQL Server - 提高服务器安全性13招