您的位置:首页 - 文章 - Spring Boot, 默认 - 正文

Java生成条形码code128

项目需要,今天整理一个条形码的制作

 /** * 具体实现 * * @param msg * @param path */ public static void getBarCode(String msg, String path) { try { File file = new File(path); OutputStream ous = new FileOutputStream(file); if (StringUtils.isEmpty(msg) || ous == null) return; //选择条形码类型(好多类型可供选择) Code128Bean bean = new Code128Bean(); //设置长宽 final double moduleWidth = 0.90; final int resolution = 150; bean.setModuleWidth(moduleWidth); bean.doQuietZone(false); bean.setMsgPosition(HumanReadablePlacement.HRP_NONE); String format = "image/png"; // 输出流 BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, resolution, BufferedImage.TYPE_BYTE_BINARY, false, 0); //生成条码 bean.generateBarcode(canvas, msg); canvas.finish(); } catch (IOException e) { throw new RuntimeException(e); } } /** * 生成code128条形码 * * @param height 条形码的高度 * @param width 条形码的宽度 * @param message 要生成的文本 * @param withQuietZone 是否两边留白 * @param hideText 隐藏可读文本 * @return 图片对应的字节码 */ public static byte[] generateBarCode128(String message, Double height, Double width, boolean withQuietZone, boolean hideText) { Code128Bean bean = new Code128Bean(); // 分辨率 int dpi = 512; // 设置两侧是否留白 bean.doQuietZone(withQuietZone); // 设置条形码高度和宽度 bean.setBarHeight((double) ObjectUtils.defaultIfNull(height, 9.0D)); if (width != null) { bean.setModuleWidth(width); } // 设置文本位置(包括是否显示) if (hideText) { bean.setMsgPosition(HumanReadablePlacement.HRP_NONE); } // 设置图片类型 String format = "image/png"; ByteArrayOutputStream ous = new ByteArrayOutputStream(); BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); // 生产条形码 bean.generateBarcode(canvas, message); try { canvas.finish(); } catch (IOException e) { } return ous.toByteArray(); }

//生成条码

bean.generateBarcode(canvas, msg);

生成条形码后,拿到File对象

 File file = new File("生成条形码的路径");
//File 转 MultipartFile
FileInputStream inputStream = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
//上传到云存储
String img = TencentUploadUtil.uploadFile(multipartFile);
//随后删除本地的图片
ImageToBase64Util.deleteFile(mgCode);

效果图

本文原创,作者:西决,其版权均为品创网络所有。如需转载,请注明出处:https://www.sxpcwlkj.com/java-code128/

发表评论