Java生成条形码(亲测可通过扫码枪扫出)
背景
项目上对接美国的外卖平台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、效果图
4、关于条形码的编码
上述工具类给出的条形码编码为:Code128;
如果向使用其他编码,只需要在generateBarCode128()
方法中将Code128Bean
换成需要的,比如:Code39Bean
;
Java生成条形码(亲测可通过扫码枪扫出)相关推荐
- Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码
Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...
- java生成条形码-使用zxing
背景 目前二维码的应用场景已经遍布各类互联网平台,通常是将产品/商品的唯一编号存储于二维码中以做扫码识别. 但是在很多场景下依然需要使用条形码(一维码) 解决方案 java生成条形码可使用的方式:ba ...
- 微信小程序码的生成(JAVA完整版) 亲测可用
JAVA生成小程序码(太阳码) 首先准备工具类,这里我使用的是QrUtil;废话不多说,上工具类; 工具类是获取token使用; appid = 小程序appID secret = 小程序秘钥 /** ...
- Java生成条形码code128
先看效果,生成的条形码. 用支付宝扫码功能可以识别出数字,手头没有扫码枪类似的工具没有测试其它方式.亲们有工具可以留言. maven依赖 <dependency><groupId&g ...
- Java生成条形码图片到本地
直接Ctrl C/V可用 maven引入barcode4j <dependency><groupId>net.sf.barcode4j</groupId><a ...
- Java生成条形码PDF文件【可批量】
最近公司有个业务,需求是开发一个可以生成条形码PDF文档的小工具.另外,老板还要求能在五一前上线该工具,时间紧,任务重.正好最近ChatGPT正火爆,何不让他帮我实现这个工具呢? 二话不说,打开cha ...
- 记录一次java生成条形码并调用打印机打印
生成条形码需要ja坐标: <!--生成条形码--><dependency><groupId>net.sf.barcode4j</groupId>< ...
- java生成条形码和二维码
文章目录 MAVEN配置 生成条形码 生成二维码 使用的包 zxing和 barcode4j. MAVEN配置 <project xmlns="http://maven.apache. ...
- java 生成条形码
params.put("barcode1", BarcodeUtil.generateFile(StringUtils.isBlank(caseInfo.getCaseNo()) ...
最新文章
- Yann LeCun力挺前AAAI主席,批判深度学习的Marcus遭怒怼
- 内网安全新趋势之应对移动设备的威胁
- android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor'
- 提示语_交通安全提示语
- 怎么样拒绝服务器重新启动?
- 谋定政策经信研究扶持-万祥军:对话李玉庭跨界电商重整
- 计算机类专业综合理论模拟试卷1,山东省2011年高等职业教育对口招生计算机类专业理论综合模拟试题(一)...
- 【转载】栈溢出原理及实现
- ip校验和及udp校验和的计算方法
- Android 系统(137)---android打包解包boot.img,system.img
- [转]Memcache mutex设计模式
- Altium AD20将已有的原理图PCB导出为封装库
- 我们来看看load data infile 需要注意的一些地方
- 在jmeter中怎么提取数据_Jmeter正则提取请求响应数据
- 计算机考研专业课408备考经验分享
- apache ab linux 下载,linux 下ab压力测试
- 作业盒子小学版android,作业盒子小学生官方版
- 使用cmd注销用户、注销当前用户
- 水晶报表:页眉或页脚超过了一页 解决方式
- JAVA基础语法笔记(黑马程序员系列)
热门文章
- 小戴门户站转来的mysql_fetch_array()运用
- 实验21_STP分析合集_ENSP
- 蓝牙音频协议双剑客(一)--音视频频分布传输协议(AVDTP)概念
- 2022-2027年中国菜谱app市场竞争态势及行业投资前景预测报告
- 今日小程序推荐:斑马音乐-没被发现的好音乐
- 模块说和神经网络学说_2020山东教师招聘考试:带你领略脑机能学说
- GCJ经纬度(腾讯、高德)转WGS84经纬度EXCEL算法
- 谈win2003与win2008启动原理及双启动的故障解决
- 简述什么是计算机仿真,计算机仿真技术总复习整理
- 2021年低压电工报名考试及低压电工实操考试视频