Java生成条形码(亲测可通过扫码枪扫出)

news/2024/12/21 20:22:43/文章来源:https://www.cnblogs.com/ios9/p/18451495

Java生成条形码(亲测可通过扫码枪扫出)

秃秃爱健身

 
  该博客介绍了如何在Java项目中通过barcode4j库生成Code128条形码,解决了条形码扫不出或美观度不足的问题。提供了相关代码示例,包括Maven依赖、工具类和生成条形码的方法,可以自定义条形码的高度、宽度、是否留白和隐藏文本。
摘要由CSDN通过智能技术生成

背景


项目上对接美国的外卖平台Uber(可以理解为国内的美团),需要在打印的小票上生成一个条形码,供Uber的骑手扫码取货。经过一顿百度发现,大佬们提供的条形码要么扫不出来,要么就很不美观(长宽比不合适),于是就自己摸索了一把。

代码

1、Maven依赖


<dependency><groupId>net.sf.barcode4j</groupId><artifactId>barcode4j-light</artifactId><version>2.0</version>
</dependency>


2、工具类


/*** 生成条码工具类*/
public class BarcodeUtils {/*** 生成条形码文件** @param msg  条形码的文本内容* @param path 生成条形码的文件路径* @return*/public static File generateFile(String msg, String path) {File file = new File(path);OutputStream outputStream = null;try {outputStream = new FileOutputStream(file);} catch (FileNotFoundException e) {e.printStackTrace();}try {generateBarCode128(msg, 10.0, 0.3, true, false, outputStream);} catch (Exception e) {throw new RuntimeException(e);}return file;}/*** 生成code128条形码** @param message       要生成的文本* @param height        条形码的高度* @param width         条形码的宽度* @param withQuietZone 是否两边留白* @param hideText      隐藏可读文本* @param outputStream  输出流*/public static void generateBarCode128(String message, Double height, Double width, boolean withQuietZone, boolean hideText, OutputStream outputStream) {Code128Bean bean = new Code128Bean();// 分辨率,越大条形码就越大int dpi = 150;// 设置两侧是否留白bean.doQuietZone(withQuietZone);// 设置条形码高度和宽度bean.setBarHeight(ObjectUtils.defaultIfNull(height, 9.0D));if (width != null) {bean.setModuleWidth(width);}// 设置文本位置(包括是否显示)if (hideText) {bean.setMsgPosition(HumanReadablePlacement.HRP_NONE);}// 设置图片类型String format = "image/png";BitmapCanvasProvider canvas = new BitmapCanvasProvider(outputStream, format, dpi,BufferedImage.TYPE_BYTE_BINARY, false, 0);// 生产条形码bean.generateBarcode(canvas, message);try {canvas.finish();} catch (IOException e) {//ByteArrayOutputStream won't happen}}public static void main(String[] args) {String msg = "TRO2022032300000400301";String path = "barcode2.png";generateFile(msg, path);}}


3、效果图

image



4、关于条形码的编码


上述工具类给出的条形码编码为:Code128;
如果向使用其他编码,只需要在generateBarCode128()方法中将Code128Bean换成需要的,比如:Code39Bean;






                        
原文链接:https://blog.csdn.net/Saintmm/article/details/123691486

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809925.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点“亮”户外应用场景,来看触想高亮显示器TPC-M8的硬实力!

工业显示器作为信息可视化和人机交互的重要媒介,正在越来越多领域担当关键任务,工业显示器的可读性及耐用性,影响应用体验、设备安全和生产效率。尤其在户外,面对高低温、灰尘雨水、强光紫外线等极端因素,常规性能的工业显示器已不足以覆盖户外高风险应用需求。为此,触想…

phpvulhunter工具:静态 php 代码审计

phpvulhunter是一款PHP源码自动化审计工具,通过这个工具,可以对一些开源CMS进行自动化的代码审计,并生成漏洞报告。 1、安装 首先从github上进行获取: git clone https://github.com/OneSourceCat/phpvulhunter2、下载完成后,将工程目录放置于 WAMP 等 PHP-Web 运行环境中…

YOLOv8-seg训练与推理

1.YOLOv8-seg简介 YOLOv8-seg是YOLO系列模型的其中一个版本。YOLOv8-seg在继承YOLO系列模型高效性和准确性的基础上,增加了实例分割的能力。 2.数据集使用的数据集较简单,主要以下目录:images:存放原始图片(1500张),大小为128x128。部分如下: images_json:存放labelme标注的…

易基因: cfMeDIP-seq揭示cfDNA甲基化高效区分原发性和转移性前列腺|Nat Commun

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 前列腺癌(Prostate cancer,PCa)是男性中第二常见的恶性肿瘤,也是全球癌症相关死亡的第三大原因。虽然大多数原发性前列腺癌可以治愈,但转移性前列腺癌患者的5年生存率仍低至30%。大多数患者很快就会发展成…

从零搭建Xswitch进行测试

1 xswitch官网 拉取社区版xwitch docker镜像,编译之,修改.env文件 ,把docker跑起来,这个是核心服务 跑起来如下,端口映射不需要管,他内部做好的,默认sip使用7060 前端ws连接端口 8081 wss连接端口 8082 2 自己照着官网ES6 demo 例子写 Vetro 例子,我是用的vue搞的前端…

【日记】医生拆线居然还能没拆干净(1796 字)

正文早上拆线,医院的门诊登记簿上写名字排队。我前面人还挺多。不过医生问过前面的情况之后,就先给我做了,因为拆线快。等我到市里转车,吃过饭后才发现,那个医生拆线没拆干净…… 吃了饭感觉口腔里还是有奇怪的东西,那个粗糙的质感,确定是线头没错了……找了个酒店的卫生…

Docker 学习笔记-基本概念与安装

Docker 学习笔记 基本概念镜像:Docker 的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。 DockerFile;镜像可以基于 DockerFile 构建,DockerFile 是一个描述文件,里面包含若干条命令,每条命令都会对…

面相快速入门教程7木型

7 木型 在本章中,我将介绍木型的基础知识,你将学会如何识别木型。首先,我们来快速参考一下木的特征:能量:向上、推动、活跃、早晨、春天、童年 特质:乐观、热情、活跃、人道主义、自信、愤怒、沮丧、冲动、反应灵敏、直接、敏锐、实际、逻辑性强、有条理、果断、有判断力…

1个月手把手教授搭建交易系统

1、资料领取 2、指导学习资料 3、完成观念的搭建 4、进行交易系统的初步搭建 5、对交易系统进行回测并且给予优化建议 6、完成交易系统的优化并且进行回测 学会了上述内容后,就能够自己搭建自己的交易系统了。 目前学费5万,线下教学,包教会。食宿由学员提供,只招收1人。

把token放到请求头中

1.前端(_axios + upload)2.后端(认证文件中)

操作系统错误点

一:操作系统概述 1. 用户界面是指用户接口 命令接口 程序接口操作环境2. 从用户观点看 操作系统就是用户与计算机硬件之间的接口 3. 从资源管理观点看 操作系统是计算机资源的管理者 4. 图形用户接口采用图形化操作界面 用于查看和操作应用程序或文档的是对话框 5. 用户程序请…