Java实现生成条形码
时间: 2023-07-29 19:12:12 浏览: 115
要实现生成条形码,可以使用Java开源库ZXing(Zebra Crossing)。
以下是一个简单的Java代码示例,演示如何使用ZXing库来生成条形码:
```java
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class BarCodeGenerator {
public static void main(String[] args) {
String data = "123456789";
String path = "barCode.png";
int width = 300;
int height = 100;
String format = "png";
Map<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(data, BarcodeFormat.CODE_128, width, height, hints);
File file = new File(path);
ImageIO.write(toBufferedImage(bitMatrix), format, file);
} catch (WriterException | IOException e) {
e.printStackTrace();
}
}
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private static BufferedImage toBufferedImage(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) ? BLACK : WHITE);
}
}
return image;
}
}
```
运行以上代码,将生成一个名为“barCode.png”的文件,其中包含数据“123456789”的条形码。
在代码中,我们使用CODE_128格式生成条形码,这是一种广泛使用的条形码类型,适用于包含数字和字母的文本数据。我们还可以通过使用其他BarcodeFormat常量来生成其他类型的条形码,例如QR_CODE和PDF_417。
我们还可以使用ZXing库来读取条形码。
阅读全文