java生成条形码不清晰
1、java TSC 条码打印乱码,何故?
没有用你这种方式打印过,我平时打印的条码用的是单机版的条码软件,在电脑专上安装属之后,电脑正常连接打印,然后打开软件在电脑里面设置条形码之后,再连接打印机打印就可以了,不是在线打的,单击版的这个条码软件支持的条码类型还挺多的,几乎现在市面上的条码类型都支持
对当前电脑上的打印机都可以连接打印
2、关于条形码识别,Java实现
条形码是按条的宽度和间隔来表示信息,分析图片的象素,通过象素的长度来判断条的宽度和间隔,根据一定的标准来转换成字符串……但是,识别的错误率会相当高了,因为条形码图片是通过扫描仪扫出来的,本身就会有误差!
3、关于java生成条形码的问题?
是一维条码还是二维条码?
一维条码只要宽度够,把整个条码都显示完全就可以
二维条码要注意保证正文形,长和宽必须相同,否则条码变形,扫描不出来
4、关于JAVA生成条形码问题
应该是自动生成的校验,如果不想要,可以换128、39码试试
5、java条形码的分辨率要怎么设置
因此本次选择的是轻量级的版本barcode4j-light
maven地址
http://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j-light/2.0
<dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j-light</artifactId> <version>2.0</version> </dependency>
//另外,也可以下载barcode4j-bin包
http://sourceforge.net/projects/barcode4j/files/barcode4j/Barcode4J%202.0/
BarcodeUtil工具类
package utils; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.lang.StringUtils; import org.krysalis.barcode4j.impl.code39.Code39Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import org.krysalis.barcode4j.tools.UnitConv; /** * 条形码工具类 * * @author tangzz * @createDate 2015年9月17日 * */ public class BarcodeUtil { /** * 生成文件 * * @param msg * @param path * @return */ public static File generateFile(String msg, String path) { File file = new File(path); try { generate(msg, new FileOutputStream(file)); } catch (FileNotFoundException e) { throw new RuntimeException(e); } return file; } /** * 生成字节 * * @param msg * @return */ public static byte[] generate(String msg) { ByteArrayOutputStream ous = new ByteArrayOutputStream(); generate(msg, ous); return ous.toByteArray(); } /** * 生成到流 * * @param msg * @param ous */ public static void generate(String msg, OutputStream ous) { if (StringUtils.isEmpty(msg) || ous == null) { return; } Code39Bean bean = new Code39Bean(); // 精细度 final int dpi = 150; // mole宽度 final double moleWidth = UnitConv.in2mm(1.0f / dpi); // 配置对象 bean.setMoleWidth(moleWidth); bean.setWideFactor(3); bean.doQuietZone(false); String format = "image/png"; try { // 输出到流 BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); // 生成条形码 bean.generateBarcode(canvas, msg); // 结束绘制 canvas.finish(); } catch (IOException e) { throw new RuntimeException(e); } } public static void main(String[] args) { String msg = "123456789"; String path = "barcode.png"; generateFile(msg, path); } }
二维码相对于条形码的优势
数据容量更大;超越了字母数字的限制;具有抗损毁能力
关于条形码的各种编码格式
6、java生成条形码的问题,哪位高人知道barcode4j生成条形码怎么配置不显示条形码下边的数字。
一维码的话,加上hrp属性:hrp=none,可以把数字栏去除。
src="<%=request.getContextPath()%>/genbc?msg=123456&type=code128&fmt=jpeg&hrp=none"
7、我看到你提问了java生成条形码的问题,请问你是用什么生成的?我现在也有这个问题
public static final int height = 226 + 2 * border; // 8cm + border
public static final int width = 212 + 2 * border; // 7.5cm + border
private static final int rate = 3; // 条码宽条与窄条宽度之比
private static int m_nNarrowWidth = 10; // 窄条的宽度像素数
private static int m_nImageHeight = 250; // 条码的高度像素数
// =========添加条形码begin===================
Barcode128 barcode128 = new Barcode128();
String strCodes = shipment.getPostalReferenceNo();
barcode128.setCode(strCodes);
int nImageWidth = (strCodes.length() * (3 * rate + 7) * m_nNarrowWidth);
java.awt.image.BufferedImage bufferedImage = new BufferedImage(
nImageWidth, m_nImageHeight + 13, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
g.fillRect(0, 33, nImageWidth, 13);
java.awt.Image codeImg = barcode128.createAwtImage(Color.black,
Color.white);
g.drawImage(codeImg, 0, 0, nImageWidth, m_nImageHeight, null);
g.setColor(Color.BLUE);
g.dispose();
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", os);
Image img1 = Image.getInstance(os.toByteArray());
img1.setAlignment(Image.ALIGN_CENTER);
你试试