java生成条形码
时间: 2023-08-24 15:08:20 浏览: 95
java代码生成条形码
要在Java中生成条形码,可以使用ZXing(Zebra Crossing)库。下面是一个简单的Java程序,可以生成一个包含指定文本的Code 128条形码:
```java
import java.io.File;
import java.io.IOException;
import java.util.Base64;
import javax.imageio.ImageIO;
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.oned.Code128Writer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class BarCodeGenerator {
public static void main(String[] args) throws WriterException, IOException {
String text = "123456789";
int width = 300;
int height = 100;
String format = "png";
String fileName = "barcode.png";
// 设置编码参数
Code128Writer writer = new Code128Writer();
BitMatrix bitMatrix = writer.encode(text, BarcodeFormat.CODE_128, width, height, null);
// 保存条形码到文件
File outputFile = new File(fileName);
ImageIO.write(bitMatrixToImage(bitMatrix), format, outputFile);
System.out.println("条形码已生成:" + outputFile.getAbsolutePath());
}
// 将BitMatrix转换为BufferedImage
private static BufferedImage bitMatrixToImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
return image;
}
}
```
这个程序使用Code128Writer类将指定文本编码为Code 128条形码,并将结果保存为png格式的图片文件。可以根据需要调整生成的条形码的宽度和高度。
另外,如果需要将生成的条形码以Base64编码的方式输出,可以使用以下代码:
```java
// 将条形码转换为Base64编码
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bitMatrixToImage(bitMatrix), format, outputStream);
String base64 = Base64.getEncoder().encodeToString(outputStream.toByteArray());
System.out.println("条形码Base64编码:" + base64);
```
这段代码将生成的条形码转换为字节数组,并使用Base64编码将其转换为字符串。
阅读全文