背景:
在智物项目中,为了物品入库、借用、归还方便,减少用户的操作,使用扫描二维码的方式进行操作,那么如何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语言批量生成二维码相关推荐

  1. java如何批量生成二维码,并返回成压缩包形式?

    最近有点忙,现在稍微闲一些,就想写写最近遇到的一些业务. 业务:后台根据前端传入的需生成的数量,生成二维码图片并统一打包成压缩包返回. 效果图: 首先根据一定规则生成二维码字符串,然后返回成list( ...

  2. 读取excel批量生成二维码

    昨天工作需要,让生成二维码,让用草料生成,就需要一个个的复制粘贴,有点麻烦.关键是量特别大,如果传统的复制粘贴要很长时间才可以. 后来想到用程序生成.于是百度了一下生成二维码的方法,别说还很简单,把代 ...

  3. 前端批量生成二维码并打包下载

    前端批量生成二维码并打包下载 项目中遇到一个紧急需求在没有后端配合的情况下,前端独自实现生成二维码并打包下载 生成二维码:下载 qrcodejs2 批量打包下载:下载 JSZip 和 FileSave ...

  4. springboot+hutool批量生成二维码压缩导出

    文章目录 1.引入依赖 2.测试编码 3.批量生成 4.解析excel 5.批量图片压缩 6.上传excel直接将输出流转成压缩包 1.引入依赖 <!-- 生成二维码依赖--><de ...

  5. TXT文件批量生成二维码

    大多数人在制作标签时,数据库文件都选择Excel文件,其实TXT文件在作为数据库时,也是可以制作各种可变数据标签的,比如批量生成二维码,条形码等.下面我们就使用TXT文件作为数据库批量生成二维码. 打 ...

  6. java根据内容生成二维码

    java根据内容生成二维码 一.首先导入jar包:google.zxing.jar jar包可以从maven网站下载:meven仓库 这里可以找到你想要的绝大多数jar包,可以是依赖,也可以是jar包 ...

  7. java利用zxing生成二维码

    什么是ZXing? ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. 利用ZXing这个工具库来生成二维码,具体操作如下: 引入相关资源包 <dependency&g ...

  8. java将链接生成二维码工具类

    一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...

  9. 速码工具箱,Excel批量生成二维码,瞬间搞定!

    之前写过一篇文章,<批量生成二维码>,当时介绍了VBA中两种生成二维码的方式,一种需要引用QRmaker控件,一种是纯代码生成的方式.但是这两种方式都有一个最大的bug--不支持64位. ...

最新文章

  1. DeepLearning索引
  2. 【ValueError: Target is multiclass but average=‘binary‘. Please choose another average setting, one 】
  3. 从状态转移看:载波侦听多路访问/冲突避免(CSMA/CA)
  4. http协议报文体_HTTP报文基本概念学习
  5. 【华为云技术分享】基于自动机器学习的心脏病预测模型(1)
  6. android viewflipper 动画,Android ViewFlipper动画
  7. 飞信2009_AfterShip CTO 洪小军—我的移动互联网十年造梦记:飞信时代
  8. 通俗易懂的 k-means 聚类算法原理及优化(附代码)
  9. 人工智能 | ShowMeAI资讯日报 #2022.06.07
  10. Java参数校验工具validation
  11. “一对一直播源码开发”运筹帷幄之中,决胜千里之外
  12. 微信小程序开发手记1.0
  13. 衡量软件交付性能的4个指标
  14. 职场002:什么是可迁移能力
  15. ios文件app访问samba服务器,ios链接samba服务器
  16. Kotlin实战案例:实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表)
  17. Cannot find JRE ‘1.8‘. You can specify JRE to run maven goals in Settings | Mav
  18. 王选院士谈院士增选:院士未必总是学术权威
  19. Python提示:Consider using the `--user` option or check the permissions.
  20. SQL Server - 提高服务器安全性13招

热门文章

  1. 图像增强算法汇总(直方图均衡化、拉普拉斯、Log变换、gamma伽马变换)附MATLAB代码
  2. c# mysql 连接串_c#数据库连接字符串集合
  3. 1034 有理数四则运算 (20分)
  4. 读书 《钝感力》《女人这东西》
  5. 买新车的注意事项/买新车需要注意什么?
  6. Camtasia 2021 for Mac(顶级屏幕录像视频编辑软件)
  7. tcmalloc性能测试
  8. WinForm应用界面开发 - 什么是DevExpress WinForm打印控件?
  9. 安装 CICS TXS
  10. 常用Date日期方法