JAVA生成条形码

/**
 * <p>[一维码生成工具类]</p>
 * <p>Copyright (c) 2014</p>
 * 支持EAN13, EAN8, UPCA, UPCE, Code 3 of 9, Codabar, Code 11, Code 93, Code 128, MSI/Plessey, Interleaved 2 of PostNet等
 * @author   7star
 * @version	1.0, 2014年4月21日
 *
 */
public class OneBarcodeUtil {  
	
	private static final String BASE_SAVE_PATH = CoreCimIFService.getInstance().cimIFGetContentById("root-path");
	private static final String RELATIVE_PATH = "uploadfiles/sis/onbarcode/";
	
	private static OneBarcodeUtil instance;

	public static OneBarcodeUtil getInstance() {
		if (instance == null) {
			instance = new OneBarcodeUtil();
		}
		return instance;
	}

	public static void saveToJPEG(String str, String paramString) throws InvalidAtributeException { 
		JBarcode localJBarcode = new JBarcode(Code128Encoder.getInstance(),WidthCodedPainter.getInstance(),BaseLineTextPainter.getInstance());
		BufferedImage paramBufferedImage = localJBarcode.createBarcode(str); 
		saveToFile(paramBufferedImage, paramString, "jpeg");  
	}  

	static void saveToFile(BufferedImage paramBufferedImage, String paramString1, String paramString2) {  
		try {  
			File uploadDir = new File(BASE_SAVE_PATH + RELATIVE_PATH);
			if (!uploadDir.isDirectory()) {
				uploadDir.mkdirs();
			}
			FileOutputStream localFileOutputStream = new FileOutputStream(uploadDir + "/" +paramString1);  
			ImageUtil.encodeAndWrite(paramBufferedImage, paramString2, localFileOutputStream, 96, 96);  
			localFileOutputStream.close();  
		}  
		catch (Exception localException) {  
			localException.printStackTrace();  
		}  
	} 
	
	
}


下载jar:jbarcode-0.2.8.jar


### 如何使用Java生成条形码 为了实现条形码生成,在Java中有多个开源库可供选择,其中`Barcode4J`和`ZXing (Zebra Crossing)`是最常用的两个。 #### 使用 ZXing 库生成条形码 ZXing 是一个开放源代码的、多格式的一维线性条形码和二维条形码图像处理库。下面是一个简单的例子来展示如何利用该库创建条形码: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.qrcode.QRCodeWriter; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.util.HashMap; import java.util.Map; public class BarcodeGenerator { private static final String QR_CODE_IMAGE_PATH = "./MyQRCode.png"; private static void generateBarCode(String text, String path, String imgType) throws WriterException, IOException { BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.CODE_128, 300, 150); Path destPath = FileSystems.getDefault().getPath(path); MatrixToImageWriter.writeToPath(bitMatrix, imgType, destPath); } } ``` 上述代码展示了通过指定的文字内容以及保存路径来生成CODE_128类型的条形码图片文件[^1]。 #### 使用 Barcode4j 库生成条形码 另一个流行的选项是Barcode4J,它支持多种编码标准并提供灵活配置的能力。以下是基于此库的一个简单实例: ```xml <!-- Maven依赖 --> <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j-light</artifactId> <version>2.1</version> </dependency> ``` ```java import org.krysalis.barcode4j.impl.code128.Code128Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.OutputStream; public class BarcodeExample { public static void main(String[] args) throws Exception { Code128Bean bean = new Code128Bean(); final int dpi = 160; // 设置参数 bean.setModuleWidth(0.3); bean.doQuietZone(false); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BitmapCanvasProvider canvas = new BitmapCanvasProvider( baos, "image/x-png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); // 绘制条形码到画布上 bean.generateBarcode(canvas, "Test"); // 完成绘制过程 canvas.finish(); try (FileOutputStream fos = new FileOutputStream("barcoe_example.png")) { ImageIO.write((BufferedImage)canvas.getGraphics(), "png", fos); } } } ``` 这段程序同样实现了将字符串转换为可视化的条形码图形的功能,并将其存储在一个PNG格式的文件中[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值