嗨我正面臨一個問題的一代條形碼在Java中。我使用code128生成條形碼。生成條形碼長度的數據是20位數字(123456789),我可以生成條形碼,條形碼的寬度爲寬度165,高度爲58。但是我需要108個寬度和29個高度作爲相同的20位數輸入。Java條碼生成
我已經使用下面的代碼生成條形碼,請幫助,如果任何人有解決問題的想法。
package com.tcs.tpos.business.dayactivities;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.onbarcode.barcode.Code128;
public class barTest {
public static void main(String[] args) throws Exception
{
String barip="1234567890";
File poFile = new File("c:/tmp/work/barcode"+barip+ ".png");
Code128 barcode=new Code128();
barcode.setData(barip);
System.out.println("The Barocde height is been refered here " +barcode.getX());
System.out.println("The Barcode width is been refered here " +barcode.getY());
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeHeight());
barcode.setX(0.5f);
barcode.setY(15f);
barcode.setLeftMargin(0.1f);
barcode.setRightMargin(0.1f);
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeHeight());
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeWidth());
System.out.println("The Barcode width is been refered here " +barcode.getTopMargin());
System.out.println("The Barcode width is been refered here " +barcode.getBottomMargin());
System.out.println("The Barcode width is been refered here " +barcode.getLeftMargin());
System.out.println("The Barcode width is been refered here " +barcode.getRightMargin());
barcode.drawBarcode("c:/tmp/work/barcode"+barip+ ".png");
ImageIcon oimage=new ImageIcon("c:/tmp/work/barcode"+barip+ ".png");
BufferedImage inputImage=ImageIO.read(poFile);
BufferedImage genom=generateomImage(inputImage,113,25);
ImageIO.write(genom, "png", new File("c:/tmp/work/barcode"+barip+ ".png"));
}
public static BufferedImage generateomImage(BufferedImage ret,int width,int height)
{
int w = ret.getWidth(null);
int h = ret.getHeight(null);
Image scaledImage = ret.getScaledInstance((int)width, (int)height, Image.SCALE_SMOOTH);
BufferedImage result = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = result.createGraphics();
g.drawImage(scaledImage, 0, 0, null);
g.dispose();
return result;
}
}
高度所以,如果你這樣做發生了什麼? –