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);
你試試