使用 Java Zxing API 将 Barcode 内容写为 Barcode 下面的标签
Posted
技术标签:
【中文标题】使用 Java Zxing API 将 Barcode 内容写为 Barcode 下面的标签【英文标题】:Writing Barcode content as label below the Barcode using Java Zxing API 【发布时间】:2015-07-21 17:25:58 【问题描述】:我正在使用 zxing api 来创建条形码。但是在创建时,我无法将条形码内容写为条形码下方的标签。
输出——
需要输出 --
生成这些条码的代码是这样的-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
public class BarcodeTesting
private static void wrtieToStream(BitMatrix bitMatrix)
try
MatrixToImageWriter.writeToStream(bitMatrix, "png", new FileOutputStream(new File("hello" + ".png")));
System.out.println( " Barcode Generated.");
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
private BitMatrix generateBitMatrix(String content, BarcodeFormat format, int width, int height)
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix bitMatrix = null;
try
bitMatrix = writer.encode(content, format, width, height);
catch (WriterException e)
e.printStackTrace();
return bitMatrix;
public static void main(String[] args)
BarcodeTesting obj = new BarcodeTesting();
BarcodeFormat barcodeFormat = BarcodeFormat.QR_CODE;
BitMatrix bitMatrix = obj.generateBitMatrix("MY QR Code 123", barcodeFormat, 24, 24);
// String formatString = format.toString();
wrtieToStream(bitMatrix);
【问题讨论】:
【参考方案1】:由于 QRCode 规范不提供将内容包含到图像中的选项,我认为 zxing 或任何其他条形码生成器不提供此功能。您必须自己将文本添加到图像中。请注意,您必须在 QRCode 周围留出足够的空白区域。您的上图底部没有足够的空白。
【讨论】:
@tobltobs。我正在尝试生成 5000-8000 条码。使用 itextpdf api,我可以在 pdf 文件中创建此类条形码,但使用 zxing 我仍在尝试查找代码 sn-p 使用它我可以这样做..【参考方案2】:@tobltobs。我搜索了很多,但没有在 zxing api 中找到任何方法来做我所期望的。因此,根据您的建议,我创建了一个图像,在生成和读取条形码后将其粘贴在其中。然后我将条形码内容写为该图像下方的字符串。
【讨论】:
【参考方案3】:Barcode4j
可用于将文本与条形码一起嵌入。
This link 有可用的 java 代码。
【讨论】:
以上是关于使用 Java Zxing API 将 Barcode 内容写为 Barcode 下面的标签的主要内容,如果未能解决你的问题,请参考以下文章